From d6abfa8ce50a4c4b8e43e19f35385238d7f4b238 Mon Sep 17 00:00:00 2001 From: bjl23 Date: Mon, 17 Jan 2011 22:43:21 +0000 Subject: [PATCH] NIHVIVO-1700 reloading display model on upgrade --- .../setup/JenaDataSourceSetupBase.java | 2 +- .../servlet/setup/UpdateKnowledgeBase.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java index ddfb0e599..22341ab58 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java @@ -57,7 +57,7 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon { protected static String USERPATH = BASE+"user/"; protected static String SYSTEMPATH = BASE+"system/"; protected static String AUTHPATH = BASE+"auth/"; - protected static String APPPATH = BASE+"app/"; + public static String APPPATH = BASE+"app/"; protected static String SUBMODELS = "/WEB-INF/submodels/"; String DB_USER = "jenatest"; // database user id 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 index 09e8d80b6..ec8e7e9c7 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java @@ -18,7 +18,9 @@ import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntModelSpec; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; +import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.RDFNode; +import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.rdf.model.Statement; import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.shared.Lock; @@ -105,6 +107,7 @@ public class UpdateKnowledgeBase implements ServletContextListener { if (ontologyUpdater.updateRequired()) { ctx.setAttribute(LuceneSetup.INDEX_REBUILD_REQUESTED_AT_STARTUP, Boolean.TRUE); doMiscAppMetadataReplacements(ctx.getRealPath(MISC_REPLACEMENTS_FILE), oms); + reloadDisplayModel(ctx); } } catch (Throwable t){ log.warn("Unable to perform miscellaneous application metadata replacements", t); @@ -177,6 +180,26 @@ public class UpdateKnowledgeBase implements ServletContextListener { } } + private void reloadDisplayModel(ServletContext ctx) { + log.info("Reloading display model"); + Object o = ctx.getAttribute("displayOntModel"); + if (o instanceof OntModel) { + OntModel displayModel = (OntModel) o; + displayModel.removeAll((Resource) null, (Property) null, (RDFNode) null); + if (displayModel.size() != 0) { + log.error("Display model not cleared successfully"); + } + JenaPersistentDataSourceSetup.readOntologyFilesInPathSet( + JenaPersistentDataSourceSetup.APPPATH, ctx, displayModel); + log.info("Display model reloaded"); + if (displayModel.size() == 0) { + log.warn("Display model empty after reloading"); + } + } else { + log.error("No display model found in context"); + } + } + private OntModel loadModelFromDirectory(String directoryPath) { OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);