From 9b7f6c92e6f5aa086b82f767111fe598449586c6 Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 17 May 2013 13:19:46 -0400 Subject: [PATCH] VIVO-82 Use ModelAccess to get or set the BaseOntModel a.k.a the Base Full model, or AssertionsModel --- .../vitro/webapp/controller/VitroRequest.java | 6 +--- .../edit/RefactorOperationController.java | 9 +++--- .../controller/jena/JenaAdminActions.java | 6 ++-- .../controller/jena/JenaExportController.java | 1 - .../controller/jena/JenaIngestController.java | 10 ++----- .../mannlib/vitro/webapp/dao/ModelAccess.java | 28 ++++++------------- .../vitro/webapp/dao/jena/JenaBaseDao.java | 1 - .../vitro/webapp/dao/jena/ModelContext.java | 9 ------ .../webapp/dao/jena/VitroJenaModelMaker.java | 7 +---- .../dao/jena/VitroJenaSpecialModelMaker.java | 7 +---- .../servlet/setup/AssembleModelsSetup.java | 10 ++----- .../servlet/setup/ContentModelSetup.java | 16 +++++++++-- .../servlet/setup/RunSparqlConstructs.java | 3 +- 13 files changed, 37 insertions(+), 76 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java index 9bb1d583d..71e087248 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java @@ -191,11 +191,7 @@ public class VitroRequest extends HttpServletRequestWrapper { public OntModel getAssertionsOntModel() { - OntModel jenaOntModel = (OntModel)_req.getSession().getAttribute( JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME ); - if ( jenaOntModel == null ) { - jenaOntModel = (OntModel)_req.getSession().getServletContext().getAttribute( JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME ); - } - return jenaOntModel; + return ModelAccess.on(getSession()).getBaseOntModel(); } public OntModel getInferenceOntModel() { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java index 57596ac7d..5311879a0 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/edit/RefactorOperationController.java @@ -7,7 +7,6 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; @@ -40,7 +39,6 @@ import com.hp.hpl.jena.rdf.model.StmtIterator; import com.hp.hpl.jena.shared.InvalidPropertyURIException; import com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.util.ResourceUtils; -import com.hp.hpl.jena.util.iterator.ClosableIterator; import com.hp.hpl.jena.util.iterator.ExtendedIterator; import com.hp.hpl.jena.vocabulary.RDF; @@ -50,6 +48,7 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController; import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext; import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent; import edu.cornell.mannlib.vitro.webapp.servlet.setup.FileGraphSetup; @@ -74,7 +73,7 @@ public class RefactorOperationController extends BaseEditController { request.setAttribute("title","Check Datatype Properties"); request.setAttribute("css", ""); - OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel"); + OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel(); ontModel.enterCriticalSection(Lock.WRITE); ArrayList results = new ArrayList(); @@ -330,7 +329,7 @@ public class RefactorOperationController extends BaseEditController { private void doMovePropertyStatements(VitroRequest request, HttpServletResponse response, EditProcessObject epo) { String userURI = LoginStatusBean.getBean(request).getUserURI(); - OntModel ontModel = ModelContext.getBaseOntModel(getServletContext()); + OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel(); Model tempRetractModel = ModelFactory.createDefaultModel(); Model tempAddModel = ModelFactory.createDefaultModel(); @@ -414,7 +413,7 @@ public class RefactorOperationController extends BaseEditController { private void doMoveInstances(VitroRequest request, HttpServletResponse response, EditProcessObject epo) { String userURI = LoginStatusBean.getBean(request).getUserURI(); - OntModel ontModel = ModelContext.getBaseOntModel(getServletContext()); + OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel(); String oldClassURIStr = (String) epo.getAttribute("VClassURI"); String newClassURIStr = (String) request.getParameter("NewVClassURI"); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java index 498d4ccb3..a436eec1e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaAdminActions.java @@ -94,7 +94,7 @@ public class JenaAdminActions extends BaseEditController { * @param response */ private void outputTbox(HttpServletResponse response) { - OntModel memoryModel = (OntModel) getServletContext().getAttribute("baseOntModel"); + OntModel memoryModel = ModelAccess.on(getServletContext()).getBaseOntModel(); try { OntModel tempOntModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM); Property DescriptionProp = ResourceFactory.createProperty(VitroVocabulary.DESCRIPTION_ANNOT); @@ -306,7 +306,7 @@ public class JenaAdminActions extends BaseEditController { if (actionStr.equals("output")) { OntModel memoryModel = null; if (request.getParameter("assertionsOnly") != null) { - memoryModel = (OntModel) getServletContext().getAttribute("baseOntModel"); + memoryModel = ModelAccess.on(getServletContext()).getBaseOntModel(); System.out.println("baseOntModel"); } else if (request.getParameter("inferences") != null) { memoryModel = (OntModel) getServletContext().getAttribute("inferenceOntModel"); @@ -375,7 +375,7 @@ public class JenaAdminActions extends BaseEditController { ClosableIterator ooIt = persistentModel.listObjects(); clean(oIt,persistentModel); } else if (actionStr.equals("outputTaxonomy")) { - OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel"); + OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel(); Model taxonomyModel = extractTaxonomy(ontModel); try { taxonomyModel.write(response.getOutputStream()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java index 2a1eff9d8..7317c61bf 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java @@ -283,7 +283,6 @@ public class JenaExportController extends BaseEditController { } } - static final String ASSERTIONS_ONT_MODEL_ATTR = "baseOntModel"; static final String INFERENCES_ONT_MODEL_ATTR = "inferenceOntModel"; static final String FULL_GRAPH = "?g"; static final String ASSERTIONS_GRAPH = ""; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java index 80e7eaf0c..3a7bb7187 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java @@ -661,8 +661,7 @@ public class JenaIngestController extends BaseEditController { /* * get baseOnt and infOnt models */ - OntModel baseOntModel = ModelContext.getBaseOntModel( - getServletContext()); + OntModel baseOntModel = ModelAccess.on(getServletContext()).getBaseOntModel(); OntModel tboxOntModel = ModelContext.getUnionOntModelSelector( getServletContext()).getTBoxModel(); @@ -1314,12 +1313,7 @@ public class JenaIngestController extends BaseEditController { if ("vitro:jenaOntModel".equals(name)) { return ModelAccess.on(request.getSession()).getJenaOntModel(); } else if ("vitro:baseOntModel".equals(name)) { - Object sessionOntModel = request.getSession().getAttribute("baseOntModel"); - if (sessionOntModel != null && sessionOntModel instanceof OntModel) { - return (OntModel) sessionOntModel; - } else { - return (OntModel) context.getAttribute("baseOntModel"); - } + return ModelAccess.on(request.getSession()).getBaseOntModel(); } else if ("vitro:inferenceOntModel".equals(name)) { Object sessionOntModel = request.getSession().getAttribute("inferenceOntModel"); if (sessionOntModel != null && sessionOntModel instanceof OntModel) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ModelAccess.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ModelAccess.java index 0ce4050f2..572a4dd1c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ModelAccess.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ModelAccess.java @@ -106,18 +106,14 @@ public class ModelAccess { return getOntModel(ModelID.UNION_FULL); } - - // /** Is this the same as Assertions model? */ - // // public OntModel getBaseOntModel() { - // // throw new RuntimeException( - // // "ModelAccess.getBaseOntModel not implemented."); - // // } - // - // public OntModel getAssertionsOntModel() { - // throw new RuntimeException( - // "ModelAccess.getAssertionsOntModel not implemented."); - // } - // + public void setBaseOntModel(OntModel m) { + setOntModel(ModelID.BASE_FULL, m); + } + + public OntModel getBaseOntModel() { + return getOntModel(ModelID.BASE_FULL); + } + // public OntModel getDisplayTboxOntModel() { // throw new RuntimeException( // "ModelAccess.getDisplayTboxOntModel not implemented."); @@ -233,14 +229,6 @@ public class ModelAccess { * ctx.setAttribute(INFERENCE_ONT_MODEL_SELECTOR, oms); * } * - * public static OntModel getBaseOntModel(ServletContext ctx) { - * return (OntModel) ctx.getAttribute(BASE_ONT_MODEL); - * } - * - * public static void setBaseOntModel(OntModel ontModel, ServletContext ctx) { - * ctx.setAttribute(BASE_ONT_MODEL, ontModel); - * } - * * public static OntModel getInferenceOntModel(ServletContext ctx) { * return (OntModel) ctx.getAttribute(INFERENCE_ONT_MODEL); * } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java index 1f0f08c25..83c029814 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/JenaBaseDao.java @@ -54,7 +54,6 @@ public class JenaBaseDao extends JenaBaseDaoCon { public static final boolean KEEP_ONLY_IF_TRUE = true; //used for updatePropertyBooleanValue() public static final boolean KEEP_ONLY_IF_FALSE = false; //used for updatePropertyBooleanValue() - public static final String ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME = "baseOntModel"; public static final String INFERENCE_ONT_MODEL_ATTRIBUTE_NAME = "inferenceOntModel"; protected static final Log log = LogFactory.getLog(JenaBaseDao.class.getName()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ModelContext.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ModelContext.java index 79bf35a1a..241840d0e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ModelContext.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/ModelContext.java @@ -22,7 +22,6 @@ public class ModelContext { private static final String BASE_ONT_MODEL_SELECTOR = "baseOntModelSelector"; private static final String INFERENCE_ONT_MODEL_SELECTOR = "inferenceOntModelSelector"; - private static final String BASE_ONT_MODEL = "baseOntModel"; private static final String INFERENCE_ONT_MODEL = "inferenceOntModel"; public ModelContext() {} @@ -59,14 +58,6 @@ public class ModelContext { ctx.setAttribute(INFERENCE_ONT_MODEL_SELECTOR, oms); } - public static OntModel getBaseOntModel(ServletContext ctx) { - return (OntModel) ctx.getAttribute(BASE_ONT_MODEL); - } - - public static void setBaseOntModel(OntModel ontModel, ServletContext ctx) { - ctx.setAttribute(BASE_ONT_MODEL, ontModel); - } - public static OntModel getInferenceOntModel(ServletContext ctx) { return (OntModel) ctx.getAttribute(INFERENCE_ONT_MODEL); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaModelMaker.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaModelMaker.java index 53e5dcdbf..14139ba42 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaModelMaker.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaModelMaker.java @@ -314,12 +314,7 @@ public class VitroJenaModelMaker implements ModelMaker { if ("vitro:jenaOntModel".equals(modelName)) { return ModelAccess.on(request.getSession()).getJenaOntModel(); } else if ("vitro:baseOntModel".equals(modelName)) { - Object sessionOntModel = request.getSession().getAttribute("baseOntModel"); - if (sessionOntModel != null && sessionOntModel instanceof OntModel) { - return (OntModel) sessionOntModel; - } else { - return (OntModel) request.getSession().getServletContext().getAttribute("baseOntModel"); - } + return ModelAccess.on(request.getSession()).getBaseOntModel(); } else if ("vitro:inferenceOntModel".equals(modelName)) { Object sessionOntModel = request.getSession().getAttribute("inferenceOntModel"); if (sessionOntModel != null && sessionOntModel instanceof OntModel) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaSpecialModelMaker.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaSpecialModelMaker.java index af676ff5a..6f0928954 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaSpecialModelMaker.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/VitroJenaSpecialModelMaker.java @@ -119,12 +119,7 @@ public class VitroJenaSpecialModelMaker implements ModelMaker { if ("vitro:jenaOntModel".equals(modelName)) { return ModelAccess.on(request.getSession()).getJenaOntModel(); } else if ("vitro:baseOntModel".equals(modelName)) { - Object sessionOntModel = request.getSession().getAttribute("baseOntModel"); - if (sessionOntModel != null && sessionOntModel instanceof OntModel) { - return (OntModel) sessionOntModel; - } else { - return (OntModel) request.getSession().getServletContext().getAttribute("baseOntModel"); - } + return ModelAccess.on(request.getSession()).getBaseOntModel(); } else if ("vitro:inferenceOntModel".equals(modelName)) { Object sessionOntModel = request.getSession().getAttribute("inferenceOntModel"); if (sessionOntModel != null && sessionOntModel instanceof OntModel) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/AssembleModelsSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/AssembleModelsSetup.java index e9dbc9f20..d95c4fc68 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/AssembleModelsSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/AssembleModelsSetup.java @@ -22,6 +22,7 @@ import com.hp.hpl.jena.rdf.model.ResourceFactory; import com.hp.hpl.jena.util.iterator.ExtendedIterator; import com.hp.hpl.jena.vocabulary.RDF; +import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer; /** @@ -42,14 +43,7 @@ public class AssembleModelsSetup implements ServletContextListener { private String SYNTAX = "N3"; public void contextInitialized(ServletContextEvent sce) { - - OntModel jenaOntModel = null; - try { - jenaOntModel = (OntModel) sce.getServletContext().getAttribute("baseOntModel"); - } catch (Exception e) { - log.error("No baseOntModel found to which to attach assembled models"); - return; - } + OntModel jenaOntModel = ModelAccess.on(sce.getServletContext()).getBaseOntModel(); // read assemblers out of assemblers directory Set pathSet = sce.getServletContext().getResourcePaths(ASSEMBLERS_DIR_PATH); for (String path : (Set)pathSet) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/ContentModelSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/ContentModelSetup.java index 0712228b5..d633e94f9 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/ContentModelSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/ContentModelSetup.java @@ -90,8 +90,20 @@ public class ContentModelSetup extends JenaDataSourceSetupBase OntModel baseFullModel = createCombinedBulkUpdatingModel(baseABoxModel, baseTBoxModel); OntModel inferenceFullModel = createCombinedModel(inferenceABoxModel, inferenceTBoxModel); OntModel unionFullModel = ModelFactory.createOntologyModel(DB_ONT_MODEL_SPEC, dataset.getDefaultModel()); + + ModelAccess.on(ctx).setOntModel(ModelID.APPLICATION_METADATA, applicationMetadataModel); + ModelAccess.on(ctx).setOntModel(ModelID.USER_ACCOUNTS, userAccountsModel); + ModelAccess.on(ctx).setOntModel(ModelID.DISPLAY, displayModel); + ModelAccess.on(ctx).setOntModel(ModelID.BASE_ABOX, baseABoxModel); + ModelAccess.on(ctx).setOntModel(ModelID.BASE_TBOX, baseTBoxModel); + ModelAccess.on(ctx).setOntModel(ModelID.BASE_FULL, baseFullModel); + ModelAccess.on(ctx).setOntModel(ModelID.INFERRED_ABOX, inferenceABoxModel); + ModelAccess.on(ctx).setOntModel(ModelID.INFERRED_TBOX, inferenceTBoxModel); + ModelAccess.on(ctx).setOntModel(ModelID.INFERRED_FULL, inferenceFullModel); + ModelAccess.on(ctx).setOntModel(ModelID.UNION_ABOX, unionABoxModel); + ModelAccess.on(ctx).setOntModel(ModelID.UNION_TBOX, unionTBoxModel); + ModelAccess.on(ctx).setOntModel(ModelID.UNION_FULL, unionFullModel); - ModelContext.setBaseOntModel(baseFullModel, ctx); ModelContext.setInferenceOntModel(inferenceFullModel, ctx); checkForNamespaceMismatch( applicationMetadataModel, ctx ); @@ -127,8 +139,6 @@ public class ContentModelSetup extends JenaDataSourceSetupBase log.info("Setting up DAO factories"); - ModelAccess.on(ctx).setJenaOntModel(unionFullModel); - WebappDaoFactoryConfig config = new WebappDaoFactoryConfig(); config.setDefaultNamespace(getDefaultNamespace(ctx)); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RunSparqlConstructs.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RunSparqlConstructs.java index b76bebb85..1f7cd4629 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RunSparqlConstructs.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RunSparqlConstructs.java @@ -28,6 +28,7 @@ import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.util.ResourceUtils; +import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; public class RunSparqlConstructs implements ServletContextListener { @@ -46,7 +47,7 @@ public class RunSparqlConstructs implements ServletContextListener { String namespace = (wadf != null && wadf.getDefaultNamespace() != null) ? wadf.getDefaultNamespace() : DEFAULT_DEFAULT_NAMESPACE; - OntModel baseOntModel = (OntModel) sce.getServletContext().getAttribute("baseOntModel"); + OntModel baseOntModel = ModelAccess.on(sce.getServletContext()).getBaseOntModel(); Model anonModel = ModelFactory.createDefaultModel(); Model namedModel = ModelFactory.createDefaultModel();