package tr.com.srdc.mdr.web;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import eu.salusproject.securityprivacy.authentication.db.Database;
import tr.com.srdc.mdr.configuration.SemanticMDRConfiguration;
import tr.com.srdc.mdr.core.impl.Repository;
import tr.com.srdc.mdr.core.impl.RepositoryManager;
import tr.com.srdc.mdr.core.model.MDRException;
public class MDRServletContextListener implements ServletContextListener {
private static final Logger logger = LoggerFactory
.getLogger(MDRServletContextListener.class);
@Override
public void contextInitialized(ServletContextEvent sce) {
String dbDirectoryPath = sce.getServletContext().getInitParameter(
"database.dir");
if (dbDirectoryPath != null && !dbDirectoryPath.isEmpty()) {
SemanticMDRConfiguration.init(dbDirectoryPath);
} else {
SemanticMDRConfiguration.init(sce.getServletContext().getRealPath(
"/"));
}
Database.getInstance();
Repository repository = RepositoryManager.getInstance().getRepository();
try {
repository.getMDRDatabase().setSyncMode(false);
repository.getDefaults().initDefaultResources();
} catch (MDRException e) {
logger.error("Default Resource from Repository Defaults could not be created");
} finally {
repository.getMDRDatabase().setSyncMode(true);
}
logger.info("MDR servlet context initialized");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
logger.info("Closing down...");
RepositoryManager.getInstance().getRepository().getMDRDatabase()
.close();
logger.info("MDRDatabase closed successfully while exiting the MDRServlet.");
}
}