Package edu.stanford.bmir.protege.web.server

Source Code of edu.stanford.bmir.protege.web.server.WebProtegeInitializer

package edu.stanford.bmir.protege.web.server;

import edu.stanford.bmir.protege.web.server.db.mongodb.MongoDBManager;
import edu.stanford.bmir.protege.web.server.filter.WebProtegeWebAppFilter;
import edu.stanford.bmir.protege.web.server.init.WebProtegeConfigurationException;
import edu.stanford.bmir.protege.web.server.logging.WebProtegeLoggerEx;
import edu.stanford.bmir.protege.web.server.logging.WebProtegeLogger;
import edu.stanford.bmir.protege.web.server.logging.WebProtegeLoggerManager;
import edu.stanford.bmir.protege.web.server.owlapi.OWLAPIMetaProjectStore;
import edu.stanford.smi.protege.server.metaproject.MetaProject;
import edu.stanford.smi.protege.server.metaproject.ProjectInstance;
import edu.stanford.smi.protege.util.Log;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.Set;

public class WebProtegeInitializer implements ServletContextListener {

    public static final WebProtegeLogger LOGGER = WebProtegeLoggerManager.get(WebProtegeInitializer.class);

    public void contextInitialized(ServletContextEvent sce) {
        try {
            WebProtegeConfigurationChecker checker = new WebProtegeConfigurationChecker();
            checker.performConfiguration(sce.getServletContext());
            warmupMetaProject();
            LOGGER.info("Initialization complete");
            WebProtegeLoggerEx loggerEx = new WebProtegeLoggerEx(LOGGER);
            loggerEx.logMemoryUsage();
        }
        catch (WebProtegeConfigurationException e) {
            LOGGER.severe(e);
            WebProtegeWebAppFilter.setConfigError(e);
        }
        catch (Throwable t) {
            LOGGER.severe(t);
            WebProtegeWebAppFilter.setError(t);
        }
    }


    public void contextDestroyed(ServletContextEvent sce) {
        try {
            OWLAPIMetaProjectStore.getStore().saveMetaProjectNow(MetaProjectManager.getManager());
        }
        catch (Throwable e) {
            WebProtegeLoggerManager.get(WebProtegeInitializer.class).severe(e);
        }
        try {
            MongoDBManager.get().dispose();
        }
        catch (Throwable e) {
            WebProtegeLoggerManager.get(WebProtegeInitializer.class).severe(e);
        }

        Log.getLogger(WebProtegeInitializer.class).info("WebProtege cleanly disposed");
    }


    private void warmupMetaProject() {
        MetaProject metaProject = LocalMetaProjectManager.getManager().getMetaProject();
        Set<ProjectInstance> projectInstances = metaProject.getProjects();
        int projectInstanceCount = projectInstances.size();
        WebProtegeLoggerManager.get(WebProtegeInitializer.class).info("Loaded meta-project.  There are %d project instances.", projectInstanceCount);
    }

}
TOP

Related Classes of edu.stanford.bmir.protege.web.server.WebProtegeInitializer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.