From 2ff288b4b1e5726bdeabaf6ca5af08e5f198c783 Mon Sep 17 00:00:00 2001 From: bjl23 Date: Tue, 30 Mar 2010 19:30:24 +0000 Subject: [PATCH] servlet context listener for NIHVIVO-205 ontology upgrade --- .../servlet/setup/UpdateKnowledgeBase.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java new file mode 100644 index 000000000..40be8b5b8 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java @@ -0,0 +1,44 @@ +/* $This file is distributed under the terms of the license in /doc/license.txt$ */ + +package edu.cornell.mannlib.vitro.webapp.servlet.setup; + +import java.io.IOException; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +import com.hp.hpl.jena.ontology.OntModel; + +import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao; +import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector; +import edu.cornell.mannlib.vitro.webapp.dao.jena.SimpleOntModelSelector; +import edu.cornell.mannlib.vitro.webapp.ontology.update.OntologyUpdater; + +/** + * Invokes process to test whether the knowledge base needs any updating + * to align with ontology changes. + * @author bjl23 + * + */ +public class UpdateKnowledgeBase implements ServletContextListener { + + public void contextInitialized(ServletContextEvent sce) { + + OntModelSelector oms = new SimpleOntModelSelector( + (OntModel) sce.getServletContext().getAttribute( + JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME)); + + try { + (new OntologyUpdater(sce.getServletContext(), oms)).update(); + } catch (IOException ioe) { + throw new RuntimeException("IOException updating knowledge base " + + "for ontology changes", ioe); + } + + } + + public void contextDestroyed(ServletContextEvent arg0) { + // nothing to do + } + +}