Merge branch 'develop' of https://github.com/vivo-project/Vitro into develop
This commit is contained in:
commit
eebb205723
52 changed files with 800 additions and 631 deletions
|
@ -25,6 +25,7 @@ import edu.cornell.mannlib.vedit.util.FormUtils;
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
|
||||
|
@ -153,14 +154,13 @@ public class BaseEditController extends VitroHttpServlet {
|
|||
}
|
||||
}
|
||||
|
||||
protected String MODEL_ATTR_NAME = "jenaOntModel";
|
||||
|
||||
protected OntModel getOntModel( HttpServletRequest request, ServletContext ctx ) {
|
||||
|
||||
|
||||
// TODO: JB - This method gets the UNION FULL model from the session, if there is one,
|
||||
// TODO and the BASE_TBOX model otherwise.
|
||||
OntModel ontModel = null;
|
||||
|
||||
try {
|
||||
ontModel = (OntModel) request.getSession().getAttribute(MODEL_ATTR_NAME);
|
||||
try {
|
||||
ontModel = ModelAccess.on(request.getSession()).getJenaOntModel();
|
||||
} catch (Exception e) {
|
||||
// ignoring any problems here - we're not really expecting
|
||||
// this attribute to be populated anyway
|
||||
|
|
|
@ -16,18 +16,19 @@ import org.apache.commons.lang.StringUtils;
|
|||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.query.Query;
|
||||
import com.hp.hpl.jena.query.QueryExecution;
|
||||
import com.hp.hpl.jena.query.QueryExecutionFactory;
|
||||
import com.hp.hpl.jena.query.QueryFactory;
|
||||
import com.hp.hpl.jena.query.QuerySolution;
|
||||
import com.hp.hpl.jena.query.ResultSet;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.rdf.model.RDFNode;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.auth.identifier.Identifier;
|
||||
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
|
||||
/**
|
||||
* The current user is blacklisted for this reason.
|
||||
|
@ -152,7 +153,7 @@ public class IsBlacklisted extends AbstractCommonIdentifier implements
|
|||
return NOT_BLACKLISTED;
|
||||
}
|
||||
|
||||
Model model = (Model) context.getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(context).getJenaOntModel();
|
||||
|
||||
queryString = queryString.replaceAll("\\?individualURI",
|
||||
"<" + ind.getURI() + ">");
|
||||
|
|
|
@ -13,6 +13,7 @@ import edu.cornell.mannlib.vedit.beans.EditProcessObject;
|
|||
import edu.cornell.mannlib.vedit.listener.ChangeListener;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Property;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
|
||||
/**
|
||||
* Add this ChangeListener to your EditProcessObject when modifying the
|
||||
|
@ -90,7 +91,7 @@ public class PropertyRestrictionListener implements ChangeListener {
|
|||
}
|
||||
|
||||
private void createAndSetBean() {
|
||||
OntModel model = (OntModel) ctx.getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(ctx).getJenaOntModel();
|
||||
PropertyRestrictionPolicyHelper bean = PropertyRestrictionPolicyHelper
|
||||
.createBean(model);
|
||||
PropertyRestrictionPolicyHelper.setBean(ctx, bean);
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.hp.hpl.jena.rdf.model.impl.Util;
|
|||
import com.hp.hpl.jena.shared.Lock;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||
|
||||
|
@ -344,7 +345,7 @@ public class PropertyRestrictionPolicyHelper {
|
|||
StartupStatus ss = StartupStatus.getBean(ctx);
|
||||
|
||||
try {
|
||||
OntModel model = (OntModel) ctx.getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(ctx).getJenaOntModel();
|
||||
if (model == null) {
|
||||
throw new NullPointerException(
|
||||
"jenaOntModel has not been initialized.");
|
||||
|
|
|
@ -42,6 +42,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
|||
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
|
||||
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.filestorage.uploadrequest.FileUploadServletRequest;
|
||||
|
@ -101,7 +102,7 @@ public class FedoraDatastreamController extends VitroHttpServlet implements Cons
|
|||
log.debug("In doGet");
|
||||
|
||||
VitroRequest vreq = new VitroRequest(req);
|
||||
OntModel sessionOntModel = (OntModel)vreq.getSession().getAttribute("jenaOntModel");
|
||||
OntModel sessionOntModel = ModelAccess.on(vreq.getSession()).getJenaOntModel();
|
||||
|
||||
synchronized (FedoraDatastreamController.class) {
|
||||
if( fedoraUrl == null ){
|
||||
|
@ -231,7 +232,7 @@ public class FedoraDatastreamController extends VitroHttpServlet implements Cons
|
|||
}
|
||||
|
||||
//check if fedora is on line
|
||||
OntModel sessionOntModel = (OntModel)rawRequest.getSession().getAttribute("jenaOntModel");
|
||||
OntModel sessionOntModel = ModelAccess.on(rawRequest.getSession()).getJenaOntModel();
|
||||
synchronized (FedoraDatastreamController.class) {
|
||||
if( fedoraUrl == null ){
|
||||
setup( sessionOntModel, getServletContext() );
|
||||
|
|
|
@ -27,6 +27,7 @@ import com.hp.hpl.jena.rdf.model.Resource;
|
|||
import com.hp.hpl.jena.shared.Lock;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaOutputUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.web.ContentType;
|
||||
|
||||
|
@ -127,12 +128,7 @@ public class OntologyController extends VitroHttpServlet{
|
|||
String url = ontology;
|
||||
|
||||
|
||||
OntModel ontModel = null;
|
||||
HttpSession session = vreq.getSession(false);
|
||||
if( session != null )
|
||||
ontModel =(OntModel)session.getAttribute("jenaOntModel");
|
||||
if( ontModel == null)
|
||||
ontModel = (OntModel)getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel ontModel = ModelAccess.on(vreq.getSession()).getJenaOntModel();
|
||||
|
||||
boolean found = false;
|
||||
Model newModel = ModelFactory.createDefaultModel();
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
package edu.cornell.mannlib.vitro.webapp.controller;
|
||||
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.DISPLAY_ONT_MODEL;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -17,6 +16,8 @@ import com.hp.hpl.jena.ontology.OntModel;
|
|||
import com.hp.hpl.jena.query.Dataset;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
|
||||
|
@ -107,7 +108,7 @@ public class VitroRequest extends HttpServletRequestWrapper {
|
|||
}
|
||||
|
||||
public void setJenaOntModel(OntModel ontModel) {
|
||||
setAttribute("jenaOntModel", ontModel);
|
||||
ModelAccess.on(this).setJenaOntModel(ontModel);
|
||||
}
|
||||
|
||||
public void setOntModelSelector(OntModelSelector oms) {
|
||||
|
@ -176,15 +177,7 @@ public class VitroRequest extends HttpServletRequestWrapper {
|
|||
|
||||
|
||||
public OntModel getJenaOntModel() {
|
||||
Object ontModel = getAttribute("jenaOntModel");
|
||||
if (ontModel instanceof OntModel) {
|
||||
return (OntModel) ontModel;
|
||||
}
|
||||
OntModel jenaOntModel = (OntModel)_req.getSession().getAttribute( JenaBaseDao.JENA_ONT_MODEL_ATTRIBUTE_NAME );
|
||||
if ( jenaOntModel == null ) {
|
||||
jenaOntModel = (OntModel)_req.getSession().getServletContext().getAttribute( JenaBaseDao.JENA_ONT_MODEL_ATTRIBUTE_NAME );
|
||||
}
|
||||
return jenaOntModel;
|
||||
return ModelAccess.on(this).getJenaOntModel();
|
||||
}
|
||||
|
||||
public OntModelSelector getOntModelSelector() {
|
||||
|
@ -198,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() {
|
||||
|
@ -215,13 +204,7 @@ public class VitroRequest extends HttpServletRequestWrapper {
|
|||
|
||||
//Get the display and editing configuration model
|
||||
public OntModel getDisplayModel(){
|
||||
Object value = _req.getAttribute(DISPLAY_ONT_MODEL);
|
||||
if (value instanceof OntModel) {
|
||||
return (OntModel) value;
|
||||
} else {
|
||||
log.error("No display model on the VitroRequest. Expecting an OntModel but found " + value);
|
||||
return null;
|
||||
}
|
||||
return ModelAccess.on(_req).getDisplayModel();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -39,6 +39,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.authenticate.LoginRedirector;
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean.Message;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.login.LoginProcessBean.State;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.LoginLogoutEvent;
|
||||
|
||||
public class Authenticate extends VitroHttpServlet {
|
||||
|
@ -557,16 +558,7 @@ public class Authenticate extends VitroHttpServlet {
|
|||
return;
|
||||
}
|
||||
|
||||
OntModel jenaOntModel = (OntModel) session.getAttribute("jenaOntModel");
|
||||
if (jenaOntModel == null) {
|
||||
jenaOntModel = (OntModel) context.getAttribute("jenaOntModel");
|
||||
}
|
||||
if (jenaOntModel == null) {
|
||||
log.error("Unable to notify audit model of login event "
|
||||
+ "because no model could be found");
|
||||
return;
|
||||
}
|
||||
|
||||
OntModel jenaOntModel = ModelAccess.on(session).getJenaOntModel();
|
||||
jenaOntModel.getBaseModel().notifyEvent(event);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ import edu.cornell.mannlib.vedit.beans.EditProcessObject;
|
|||
import edu.cornell.mannlib.vedit.controller.BaseEditController;
|
||||
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
|
||||
public class NamespacePrefixOperationController extends BaseEditController {
|
||||
|
@ -68,7 +69,7 @@ public class NamespacePrefixOperationController extends BaseEditController {
|
|||
|
||||
if (request.getParameter("_cancel") == null) {
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
String namespaceStr = request.getParameter("namespace");
|
||||
String prefixStr = request.getParameter("prefix");
|
||||
|
||||
|
|
|
@ -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", "<link rel=\"stylesheet\" type=\"text/css\" href=\""+vreq.getAppBean().getThemeDir()+"css/edit.css\"/>");
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
|
||||
ontModel.enterCriticalSection(Lock.WRITE);
|
||||
ArrayList<String> results = new ArrayList<String>();
|
||||
|
||||
|
@ -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");
|
||||
|
|
|
@ -22,6 +22,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.VitroVocabulary;
|
||||
|
||||
public class NamespacesListingController extends BaseEditController {
|
||||
|
@ -34,7 +35,7 @@ public class NamespacesListingController extends BaseEditController {
|
|||
|
||||
VitroRequest vrequest = new VitroRequest(request);
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
|
||||
ArrayList results = new ArrayList();
|
||||
request.setAttribute("results",results);
|
||||
|
|
|
@ -33,6 +33,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VClassDao;
|
||||
|
||||
|
@ -51,8 +52,8 @@ public class RestrictionsListingController extends BaseEditController {
|
|||
|
||||
epo = super.createEpo(request);
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
|
||||
ObjectPropertyDao opDao = vrequest.getFullWebappDaoFactory().getObjectPropertyDao();
|
||||
VClassDao vcDao = vrequest.getFullWebappDaoFactory().getVClassDao();
|
||||
IndividualDao iDao = vrequest.getFullWebappDaoFactory().getIndividualDao();
|
||||
|
|
|
@ -47,6 +47,7 @@ import com.hp.hpl.jena.vocabulary.RDFS;
|
|||
import edu.cornell.mannlib.vedit.controller.BaseEditController;
|
||||
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
|
||||
public class JenaAdminActions extends BaseEditController {
|
||||
|
@ -93,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);
|
||||
|
@ -171,7 +172,7 @@ public class JenaAdminActions extends BaseEditController {
|
|||
private String testWriteXML() {
|
||||
StringBuffer output = new StringBuffer();
|
||||
output.append("<html><head><title>Test Write XML</title></head><body><pre>\n");
|
||||
Model model = (Model) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
Model tmp = ModelFactory.createDefaultModel();
|
||||
boolean valid = true;
|
||||
for (Statement stmt : ((List<Statement>)model.listStatements().toList()) ) {
|
||||
|
@ -230,7 +231,7 @@ public class JenaAdminActions extends BaseEditController {
|
|||
}
|
||||
|
||||
private void removeLongLiterals() {
|
||||
OntModel memoryModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel memoryModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
memoryModel.enterCriticalSection(Lock.WRITE);
|
||||
try {
|
||||
List<Statement> statementsToRemove = new LinkedList<Statement>();
|
||||
|
@ -273,7 +274,7 @@ public class JenaAdminActions extends BaseEditController {
|
|||
}
|
||||
|
||||
if (actionStr.equals("checkURIs")) {
|
||||
OntModel memoryModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel memoryModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
ClosableIterator stmtIt = memoryModel.listStatements();
|
||||
try {
|
||||
for (Iterator i = stmtIt; i.hasNext(); ) {
|
||||
|
@ -305,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");
|
||||
|
@ -314,7 +315,7 @@ public class JenaAdminActions extends BaseEditController {
|
|||
memoryModel = (OntModel) getServletContext().getAttribute("pelletOntModel");
|
||||
System.out.println("pelletOntModel");
|
||||
} else {
|
||||
memoryModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
memoryModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
System.out.println("jenaOntModel");
|
||||
}
|
||||
int subModelCount = 0;
|
||||
|
@ -340,7 +341,7 @@ public class JenaAdminActions extends BaseEditController {
|
|||
}
|
||||
|
||||
if (actionStr.equals("isIsomorphic")) {
|
||||
OntModel memoryModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel memoryModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
OntModel persistentModel = (OntModel) getServletContext().getAttribute("jenaPersistentOntModel");
|
||||
if ((memoryModel != null) && (persistentModel != null)) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
@ -363,7 +364,7 @@ public class JenaAdminActions extends BaseEditController {
|
|||
log.trace((System.currentTimeMillis()-startTime)/1000+" seconds to check isomorphism");
|
||||
}
|
||||
} else if (actionStr.equals("removeUntypedResources")) {
|
||||
OntModel memoryModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel memoryModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
OntModel persistentModel = (OntModel) getServletContext().getAttribute("jenaPersistentOntModel");
|
||||
ClosableIterator rIt = memoryModel.listSubjects();
|
||||
clean(rIt,memoryModel);
|
||||
|
@ -374,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());
|
||||
|
|
|
@ -283,8 +283,6 @@ public class JenaExportController extends BaseEditController {
|
|||
}
|
||||
}
|
||||
|
||||
static final String FULL_ONT_MODEL_ATTR = "jenaOntModel";
|
||||
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 = "<http://vitro.mannlib.cornell.edu/default/vitro-kb-2>";
|
||||
|
|
|
@ -67,6 +67,7 @@ import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
|
|||
import edu.cornell.mannlib.vitro.webapp.beans.Ontology;
|
||||
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.OntologyDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceGraph;
|
||||
|
@ -80,7 +81,7 @@ import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
|||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
|
||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.WebappDaoSetup;
|
||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestUtils.MergeResult;
|
||||
|
@ -520,7 +521,7 @@ public class JenaIngestController extends BaseEditController {
|
|||
vreq.setAttribute("title", "Choose Workflow Step");
|
||||
vreq.setAttribute("bodyJsp", WORKFLOW_STEP_JSP);
|
||||
} else {
|
||||
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel jenaOntModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
jenaOntModel.enterCriticalSection(Lock.READ);
|
||||
List<Individual> savedQueryList = new LinkedList<Individual>();
|
||||
try {
|
||||
|
@ -537,7 +538,7 @@ public class JenaIngestController extends BaseEditController {
|
|||
|
||||
private void processExecuteSparqlRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
|
||||
String sparqlQueryStr = vreq.getParameter("sparqlQueryStr");
|
||||
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel jenaOntModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
jenaOntModel.enterCriticalSection(Lock.READ);
|
||||
List<Individual> savedQueryList = new LinkedList<Individual>();
|
||||
try {
|
||||
|
@ -660,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();
|
||||
|
||||
|
@ -910,7 +910,7 @@ public class JenaIngestController extends BaseEditController {
|
|||
}
|
||||
|
||||
private long doExecuteSparql(VitroRequest vreq) {
|
||||
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel jenaOntModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
OntModel source = null;
|
||||
if ("pellet".equals(vreq.getParameter("reasoning"))) {
|
||||
source = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
|
||||
|
@ -984,7 +984,7 @@ public class JenaIngestController extends BaseEditController {
|
|||
log.debug("Connecting to DB at "+jdbcUrl);
|
||||
StoreDesc storeDesc = new StoreDesc(LayoutType.LayoutTripleNodesHash,dbTypeObj) ;
|
||||
ServletContext ctx = vreq.getSession().getServletContext();
|
||||
DataSource bds = WebappDaoSetup.makeBasicDataSource(
|
||||
DataSource bds = ContentModelSetup.makeBasicDataSource(
|
||||
driver, jdbcUrl, username, password, ctx);
|
||||
try {
|
||||
VitroJenaSDBModelMaker vsmm = new VitroJenaSDBModelMaker(storeDesc, bds);
|
||||
|
@ -1193,8 +1193,7 @@ public class JenaIngestController extends BaseEditController {
|
|||
Model baseOntModel = RDFServiceGraph.createRDFServiceModel
|
||||
(new RDFServiceGraph(
|
||||
rdfService, JenaDataSourceSetupBase.JENA_DB_MODEL));
|
||||
OntModel ontModel = (OntModel)
|
||||
getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
List<String> urisToChange = new LinkedList<String>();
|
||||
ontModel.enterCriticalSection(Lock.READ);
|
||||
try {
|
||||
|
@ -1312,19 +1311,9 @@ public class JenaIngestController extends BaseEditController {
|
|||
|
||||
public static Model getModel(String name, HttpServletRequest request, ServletContext context) {
|
||||
if ("vitro:jenaOntModel".equals(name)) {
|
||||
Object sessionOntModel = request.getSession().getAttribute("jenaOntModel");
|
||||
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {
|
||||
return (OntModel) sessionOntModel;
|
||||
} else {
|
||||
return (OntModel) context.getAttribute("jenaOntModel");
|
||||
}
|
||||
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) {
|
||||
|
|
|
@ -119,9 +119,6 @@ public class DisplayVocabulary {
|
|||
public static final String CONTEXT_DISPLAY_TBOX = "displayOntModelTBOX";
|
||||
public static final String CONTEXT_DISPLAY_DISPLAY = "displayOntModelDisplayModel";
|
||||
|
||||
/** Key for display model in request, session or context attributes */
|
||||
public static final String DISPLAY_ONT_MODEL = "displayOntModel";
|
||||
|
||||
//URL for menu management
|
||||
public static final String PROCESS_MENU_MANAGEMENT_URL = "/menuManagementEdit";
|
||||
public static final String REORDER_MENU_URL = PROCESS_MENU_MANAGEMENT_URL + "?cmd=Reorder&" + SWITCH_TO_DISPLAY_MODEL + "=true";
|
||||
|
|
301
webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ModelAccess.java
Normal file
301
webapp/src/edu/cornell/mannlib/vitro/webapp/dao/ModelAccess.java
Normal file
|
@ -0,0 +1,301 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
package edu.cornell.mannlib.vitro.webapp.dao;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
|
||||
/**
|
||||
* Hierarchical storage for models. TODO
|
||||
*/
|
||||
public class ModelAccess {
|
||||
/** These attributes should only be accessed through this class. */
|
||||
private static final String ATTRIBUTE_NAME = ModelAccess.class.getName();
|
||||
|
||||
public enum ModelID {
|
||||
APPLICATION_METADATA,
|
||||
|
||||
USER_ACCOUNTS,
|
||||
|
||||
DISPLAY, DISPLAY_DISPLAY, DISPLAY_TBOX,
|
||||
|
||||
BASE_ABOX, BASE_TBOX, BASE_FULL,
|
||||
|
||||
INFERRED_ABOX, INFERRED_TBOX, INFERRED_FULL,
|
||||
|
||||
UNION_ABOX, UNION_TBOX, UNION_FULL
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Factory methods
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
public static ModelAccess on(HttpServletRequest req) {
|
||||
Object o = req.getAttribute(ATTRIBUTE_NAME);
|
||||
if (o instanceof ModelAccess) {
|
||||
return (ModelAccess) o;
|
||||
} else {
|
||||
ModelAccess parent = on(req.getSession());
|
||||
ModelAccess ma = new ModelAccess(parent);
|
||||
req.setAttribute(ATTRIBUTE_NAME, ma);
|
||||
return ma;
|
||||
}
|
||||
}
|
||||
|
||||
public static ModelAccess on(HttpSession session) {
|
||||
Object o = session.getAttribute(ATTRIBUTE_NAME);
|
||||
if (o instanceof ModelAccess) {
|
||||
return (ModelAccess) o;
|
||||
} else {
|
||||
ModelAccess parent = on(session.getServletContext());
|
||||
ModelAccess ma = new ModelAccess(parent);
|
||||
session.setAttribute(ATTRIBUTE_NAME, ma);
|
||||
return ma;
|
||||
}
|
||||
}
|
||||
|
||||
public static ModelAccess on(ServletContext ctx) {
|
||||
Object o = ctx.getAttribute(ATTRIBUTE_NAME);
|
||||
if (o instanceof ModelAccess) {
|
||||
return (ModelAccess) o;
|
||||
} else {
|
||||
ModelAccess ma = new ModelAccess(null);
|
||||
ctx.setAttribute(ATTRIBUTE_NAME, ma);
|
||||
return ma;
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// Instance methods
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
private final ModelAccess parent;
|
||||
private final Map<String, OntModel> modelMap = new HashMap<>();
|
||||
|
||||
public ModelAccess(ModelAccess parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public void setUserAccountsModel(OntModel m) {
|
||||
setOntModel(ModelID.USER_ACCOUNTS, m);
|
||||
}
|
||||
|
||||
public OntModel getUserAccountsModel() {
|
||||
return getOntModel(ModelID.USER_ACCOUNTS);
|
||||
}
|
||||
|
||||
public void setDisplayModel(OntModel m) {
|
||||
setOntModel(ModelID.DISPLAY, m);
|
||||
}
|
||||
|
||||
public OntModel getDisplayModel() {
|
||||
return getOntModel(ModelID.DISPLAY);
|
||||
}
|
||||
|
||||
public void setJenaOntModel(OntModel m) {
|
||||
setOntModel(ModelID.UNION_FULL, m);
|
||||
}
|
||||
|
||||
public OntModel getJenaOntModel() {
|
||||
return getOntModel(ModelID.UNION_FULL);
|
||||
}
|
||||
|
||||
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.");
|
||||
// }
|
||||
//
|
||||
// public OntModel getDisplayModelDisplayOntModel() {
|
||||
// throw new RuntimeException(
|
||||
// "ModelAccess.getDisplayModelDisplayOntModel not implemented.");
|
||||
// }
|
||||
//
|
||||
// public OntModelSelector getOntModelSelector() {
|
||||
// return getUnionOntModelSelector();
|
||||
// }
|
||||
//
|
||||
// public OntModelSelector getBaseOntModelSelector() {
|
||||
// return new FacadeOntModelSelector(this, ModelID.BASE_ABOX,
|
||||
// ModelID.BASE_TBOX, ModelID.BASE_FULL);
|
||||
// }
|
||||
//
|
||||
// public OntModelSelector getInferenceOntModelSelector() {
|
||||
// return new FacadeOntModelSelector(this, ModelID.INFERRED_ABOX,
|
||||
// ModelID.INFERRED_TBOX, ModelID.INFERRED_FULL);
|
||||
// }
|
||||
//
|
||||
// public OntModelSelector getUnionOntModelSelector() {
|
||||
// return new FacadeOntModelSelector(this, ModelID.UNION_ABOX,
|
||||
// ModelID.UNION_TBOX, ModelID.UNION_FULL);
|
||||
// }
|
||||
//
|
||||
// private static class FacadeOntModelSelector implements OntModelSelector {
|
||||
// private final ModelAccess parent;
|
||||
// private final ModelID aboxID;
|
||||
// private final ModelID tboxID;
|
||||
// private final ModelID fullID;
|
||||
//
|
||||
// public FacadeOntModelSelector(ModelAccess parent, ModelID aboxID,
|
||||
// ModelID tboxID, ModelID fullID) {
|
||||
// this.parent = parent;
|
||||
// this.aboxID = aboxID;
|
||||
// this.tboxID = tboxID;
|
||||
// this.fullID = fullID;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getABoxModel() {
|
||||
// return parent.getOntModel(aboxID);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getTBoxModel() {
|
||||
// return parent.getOntModel(tboxID);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getTBoxModel(String ontologyURI) {
|
||||
// return parent.getOntModel(tboxID);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getFullModel() {
|
||||
// return parent.getOntModel(fullID);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getApplicationMetadataModel() {
|
||||
// return parent.getOntModel(ModelID.APPLICATION_METADATA);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getUserAccountsModel() {
|
||||
// return parent.getOntModel(ModelID.USER_ACCOUNTS);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public OntModel getDisplayModel() {
|
||||
// return parent.getOntModel(ModelID.DISPLAY);
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* From ModelContext
|
||||
*
|
||||
* public static OntModelSelector getOntModelSelector(ServletContext ctx) {
|
||||
* return (OntModelSelector) ctx.getAttribute(ONT_MODEL_SELECTOR);
|
||||
* }
|
||||
*
|
||||
* public static void setOntModelSelector(OntModelSelector oms, ServletContext ctx) {
|
||||
* ctx.setAttribute(ONT_MODEL_SELECTOR, oms);
|
||||
* }
|
||||
*
|
||||
* public static OntModelSelector getUnionOntModelSelector(ServletContext ctx) {
|
||||
* return (OntModelSelector) ctx.getAttribute(UNION_ONT_MODEL_SELECTOR);
|
||||
* }
|
||||
*
|
||||
* public static void setUnionOntModelSelector(OntModelSelector oms, ServletContext ctx) {
|
||||
* ctx.setAttribute(UNION_ONT_MODEL_SELECTOR, oms);
|
||||
* }
|
||||
*
|
||||
* public static OntModelSelector getBaseOntModelSelector(ServletContext ctx) {
|
||||
* return (OntModelSelector) ctx.getAttribute(BASE_ONT_MODEL_SELECTOR);
|
||||
* }
|
||||
*
|
||||
* public static void setBaseOntModelSelector(OntModelSelector oms, ServletContext ctx) {
|
||||
* ctx.setAttribute(BASE_ONT_MODEL_SELECTOR, oms);
|
||||
* }
|
||||
*
|
||||
* public static OntModelSelector getInferenceOntModelSelector(ServletContext ctx) {
|
||||
* return (OntModelSelector) ctx.getAttribute(INFERENCE_ONT_MODEL_SELECTOR);
|
||||
* }
|
||||
*
|
||||
* public static void setInferenceOntModelSelector(OntModelSelector oms, ServletContext ctx) {
|
||||
* ctx.setAttribute(INFERENCE_ONT_MODEL_SELECTOR, oms);
|
||||
* }
|
||||
*
|
||||
* public static OntModel getInferenceOntModel(ServletContext ctx) {
|
||||
* return (OntModel) ctx.getAttribute(INFERENCE_ONT_MODEL);
|
||||
* }
|
||||
*
|
||||
* public static void setInferenceOntModel(OntModel ontModel, ServletContext ctx) {
|
||||
* ctx.setAttribute(INFERENCE_ONT_MODEL, ontModel);
|
||||
* }
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
/**
|
||||
* <pre>
|
||||
* VitroRequest.getAssertionsWebappDaoFactory()
|
||||
* VitroRequest.getDeductionsWebappDaoFactory()
|
||||
* VitroRequest.getFullWebappDaoFactory()
|
||||
* VitroRequest.getRDFService()
|
||||
* VitroRequest.getUnfilteredRDFService()
|
||||
* VitroRequest.getWebappDaoFactory()
|
||||
* VitroRequest.getWriteModel()
|
||||
* VitroRequest.getJenaOntModel()
|
||||
* VitroRequest.setJenaOntModel()
|
||||
* ModelContext.getBaseOntModelSelector()
|
||||
* ModelContext.getInferenceOntModel()
|
||||
* ModelContext.getInferenceOntModelSelector()
|
||||
* ModelContext.getOntModelSelector()
|
||||
* ModelContext.getUnionOntModelSelector()
|
||||
* OntModelSelector.getAboxModel
|
||||
* OntModelSelector.getApplicationMetadataModel()
|
||||
* OntModelSelector.getFullModel()
|
||||
* OntModelSelector.getTBoxModel()
|
||||
* OntModelSelector.getTBoxModel(ontologyURI)
|
||||
* OntModelSelector.getUserAccountsModel()
|
||||
* VitroModelSource.getModel(URL)
|
||||
* VitroModelSource.getModel(URL, loadIfAbsent)
|
||||
* VitroModelSource.openModel(name)
|
||||
* VitroModelSource.openModelIfPresent(string)
|
||||
* ServletContext.getAttribute("assertionsWebappDaoFactory")
|
||||
* ServletContext.getAttribute("baseOntModelSelector")
|
||||
* ServletContext.getAttribute("jenaPersistentOntModel")
|
||||
* ServletContext.getAttribute("pelletOntModel")
|
||||
* ServletContext.getAttribute("webappDaoFactory")
|
||||
* VitroJenaModelMaker
|
||||
* VitroJenaSpecialModelMaker
|
||||
* JenaDataSourceSetupBase.getApplicationDataSource(ctx)
|
||||
* JenaDataSourceSetupBase.getStartupDataset()
|
||||
* HttpSession.getAttribute("jenaAuditModel")
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
public void setOntModel(ModelID id, OntModel ontModel) {
|
||||
String key = id.toString();
|
||||
if (ontModel == null) {
|
||||
modelMap.remove(key);
|
||||
} else {
|
||||
modelMap.put(key, ontModel);
|
||||
}
|
||||
}
|
||||
|
||||
public OntModel getOntModel(ModelID id) {
|
||||
String key = id.toString();
|
||||
if (modelMap.containsKey(key)) {
|
||||
return modelMap.get(key);
|
||||
} else if (parent != null) {
|
||||
return parent.getOntModel(id);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -54,8 +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 JENA_ONT_MODEL_ATTRIBUTE_NAME = "jenaOntModel";
|
||||
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());
|
||||
|
|
|
@ -10,7 +10,6 @@ import org.apache.commons.logging.LogFactory;
|
|||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.rdf.model.ModelChangedListener;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
|
||||
|
@ -23,8 +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 JENA_ONT_MODEL = "jenaOntModel";
|
||||
private static final String BASE_ONT_MODEL = "baseOntModel";
|
||||
private static final String INFERENCE_ONT_MODEL = "inferenceOntModel";
|
||||
|
||||
public ModelContext() {}
|
||||
|
@ -61,22 +58,6 @@ public class ModelContext {
|
|||
ctx.setAttribute(INFERENCE_ONT_MODEL_SELECTOR, oms);
|
||||
}
|
||||
|
||||
public static OntModel getJenaOntModel(ServletContext ctx) {
|
||||
return (OntModel) ctx.getAttribute(JENA_ONT_MODEL);
|
||||
}
|
||||
|
||||
public static void setJenaOntModel(OntModel ontModel, ServletContext ctx) {
|
||||
ctx.setAttribute(JENA_ONT_MODEL, ontModel);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -113,10 +94,4 @@ public class ModelContext {
|
|||
|
||||
}
|
||||
|
||||
public static OntModel getDisplayModel(ServletContext ctx){
|
||||
return(OntModel) ctx.getAttribute( DisplayVocabulary.DISPLAY_ONT_MODEL );
|
||||
}
|
||||
public static void setDisplayModel(OntModel ontModel, ServletContext ctx){
|
||||
ctx.setAttribute(DisplayVocabulary.DISPLAY_ONT_MODEL,ontModel);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ import com.hp.hpl.jena.vocabulary.RDFS;
|
|||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VClassGroupDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
|
@ -494,7 +495,7 @@ public class VClassGroupCache implements IndexingEventListener {
|
|||
} else if(VitroVocabulary.DISPLAY_RANK.equals(stmt.getPredicate().getURI())){
|
||||
requestCacheUpdate();
|
||||
} else {
|
||||
OntModel jenaOntModel = ModelContext.getJenaOntModel(context);
|
||||
OntModel jenaOntModel = ModelAccess.on(context).getJenaOntModel();
|
||||
if( isClassNameChange(stmt, jenaOntModel) ) {
|
||||
requestCacheUpdate();
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ import com.hp.hpl.jena.util.iterator.ExtendedIterator;
|
|||
import com.hp.hpl.jena.util.iterator.WrappedIterator;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
|
||||
|
||||
/**
|
||||
|
@ -311,21 +312,9 @@ public class VitroJenaModelMaker implements ModelMaker {
|
|||
private Model getSpecialModel(String modelName) {
|
||||
if (request != null) {
|
||||
if ("vitro:jenaOntModel".equals(modelName)) {
|
||||
Object sessionOntModel = request.getSession().getAttribute("jenaOntModel");
|
||||
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {
|
||||
log.debug("Returning jenaOntModel from session");
|
||||
return (OntModel) sessionOntModel;
|
||||
} else {
|
||||
log.debug("Returning jenaOntModel from context");
|
||||
return (OntModel) request.getSession().getServletContext().getAttribute("jenaOntModel");
|
||||
}
|
||||
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) {
|
||||
|
|
|
@ -14,6 +14,8 @@ import com.hp.hpl.jena.rdf.model.ModelMaker;
|
|||
import com.hp.hpl.jena.rdf.model.ModelReader;
|
||||
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
|
||||
/**
|
||||
* Wraps a model maker and returns Models from the servlet context when
|
||||
* certain model URIs are requested
|
||||
|
@ -115,21 +117,9 @@ public class VitroJenaSpecialModelMaker implements ModelMaker {
|
|||
private Model getSpecialModel(String modelName) {
|
||||
if (request != null) {
|
||||
if ("vitro:jenaOntModel".equals(modelName)) {
|
||||
Object sessionOntModel = request.getSession().getAttribute("jenaOntModel");
|
||||
if (sessionOntModel != null && sessionOntModel instanceof OntModel) {
|
||||
log.debug("Returning jenaOntModel from session");
|
||||
return (OntModel) sessionOntModel;
|
||||
} else {
|
||||
log.debug("Returning jenaOntModel from context");
|
||||
return (OntModel) request.getSession().getServletContext().getAttribute("jenaOntModel");
|
||||
}
|
||||
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) {
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.hp.hpl.jena.rdf.model.ModelReader;
|
|||
import com.hp.hpl.jena.rdf.model.ModelSource;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
|
||||
/**
|
||||
* ModelSource that will handle specially named Vitro models such
|
||||
|
@ -106,11 +107,11 @@ public class VitroModelSource implements ModelSource {
|
|||
private Model getNamedModel( ModelName pmn ){
|
||||
switch( pmn ){
|
||||
case ABOX:
|
||||
return (Model) context.getAttribute("jenaOntModel");
|
||||
return ModelAccess.on(context).getJenaOntModel();
|
||||
case TBOX:
|
||||
return (Model) context.getAttribute("tboxmodel???");
|
||||
case DISPLAY:
|
||||
return (Model) context.getAttribute(DisplayVocabulary.DISPLAY_ONT_MODEL );
|
||||
return ModelAccess.on(context).getDisplayModel();
|
||||
case DISPLAY_TBOX:
|
||||
return (Model) context.getAttribute(DisplayVocabulary.CONTEXT_DISPLAY_TBOX);
|
||||
case DISPLAY_DISPLAY:
|
||||
|
|
|
@ -14,8 +14,8 @@ import javax.servlet.http.HttpSession;
|
|||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.rdf.model.Literal;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.DataProperty;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
|
||||
|
@ -23,6 +23,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
|||
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerConfigurationLoader;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
|
@ -189,7 +190,7 @@ public class EditConfigurationUtils {
|
|||
public static DataPropertyStatement getDataPropertyStatement(VitroRequest vreq, HttpSession session, Integer dataHash, String predicateUri) {
|
||||
DataPropertyStatement dps = null;
|
||||
if( dataHash != 0) {
|
||||
Model model = (Model)session.getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(session.getServletContext()).getJenaOntModel();
|
||||
dps = RdfLiteralHash.getPropertyStmtByHash(EditConfigurationUtils.getSubjectUri(vreq), predicateUri, dataHash, model);
|
||||
}
|
||||
return dps;
|
||||
|
|
|
@ -4,8 +4,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
@ -13,13 +11,11 @@ import org.apache.commons.lang.StringUtils;
|
|||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.IdModelSelector;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.ModelSelector;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.StandardModelSelector;
|
||||
import edu.cornell.mannlib.vitro.webapp.filters.VitroRequestPrep;
|
||||
|
||||
public abstract class BaseEditConfigurationGenerator implements EditConfigurationGenerator {
|
||||
|
||||
|
@ -66,7 +62,7 @@ public abstract class BaseEditConfigurationGenerator implements EditConfiguratio
|
|||
//setup the model selectors for query, write and display models on editConfig
|
||||
setupModelSelectorsFromVitroRequest(vreq, editConfig);
|
||||
|
||||
OntModel queryModel = vreq.getJenaOntModel(); // (OntModel)vreq.getAttribute("jenaOntModel");
|
||||
OntModel queryModel = ModelAccess.on(vreq).getJenaOntModel();
|
||||
|
||||
if( editConfig.getSubjectUri() == null)
|
||||
editConfig.setSubjectUri( EditConfigurationUtils.getSubjectUri(vreq));
|
||||
|
|
|
@ -14,6 +14,7 @@ import org.apache.commons.lang.StringUtils;
|
|||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.rdf.model.Literal;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
|
||||
|
@ -21,6 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
|||
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
|
@ -350,7 +352,7 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati
|
|||
|
||||
private void prepareForUpdate(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
|
||||
//Here, retrieve model from
|
||||
Model model = (Model) session.getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(session.getServletContext()).getJenaOntModel();
|
||||
//if object property
|
||||
if(EditConfigurationUtils.isObjectProperty(EditConfigurationUtils.getPredicateUri(vreq), vreq)){
|
||||
Individual objectIndividual = EditConfigurationUtils.getObjectIndividual(vreq);
|
||||
|
|
|
@ -31,6 +31,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
|
|||
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
|
@ -377,7 +378,7 @@ public class DefaultObjectPropertyFormGenerator implements EditConfigurationGene
|
|||
|
||||
private void prepareForUpdate(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
|
||||
//Here, retrieve model from
|
||||
Model model = (Model) session.getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(session.getServletContext()).getJenaOntModel();
|
||||
//if object property
|
||||
if(EditConfigurationUtils.isObjectProperty(EditConfigurationUtils.getPredicateUri(vreq), vreq)){
|
||||
Individual objectIndividual = EditConfigurationUtils.getObjectIndividual(vreq);
|
||||
|
@ -408,16 +409,11 @@ public class DefaultObjectPropertyFormGenerator implements EditConfigurationGene
|
|||
if(isSelectFromExisting(vreq)) {
|
||||
// set ProhibitedFromSearch object so picklist doesn't show
|
||||
// individuals from classes that should be hidden from list views
|
||||
//TODO: Check how model is retrieved
|
||||
OntModel displayOntModel =
|
||||
(OntModel) session.getServletContext()
|
||||
.getAttribute(DISPLAY_ONT_MODEL);
|
||||
if (displayOntModel != null) {
|
||||
ProhibitedFromSearch pfs = new ProhibitedFromSearch(
|
||||
DisplayVocabulary.SEARCH_INDEX_URI, displayOntModel);
|
||||
if( editConfig != null )
|
||||
editConfig.setProhibitedFromSearch(pfs);
|
||||
}
|
||||
OntModel displayOntModel = ModelAccess.on(session).getDisplayModel();
|
||||
ProhibitedFromSearch pfs = new ProhibitedFromSearch(
|
||||
DisplayVocabulary.SEARCH_INDEX_URI, displayOntModel);
|
||||
if( editConfig != null )
|
||||
editConfig.setProhibitedFromSearch(pfs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ import com.hp.hpl.jena.vocabulary.XSD;
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||
|
@ -207,7 +208,7 @@ public class ManagePageGenerator extends BaseEditConfigurationGenerator implemen
|
|||
void prepare(VitroRequest vreq, EditConfigurationVTwo editConfig) {
|
||||
//setup the model selectors for query, write and display models on editConfig
|
||||
setupModelSelectorsFromVitroRequest(vreq, editConfig);
|
||||
OntModel queryModel = (OntModel)vreq.getAttribute("jenaOntModel");
|
||||
OntModel queryModel = ModelAccess.on(vreq).getJenaOntModel();
|
||||
if (editConfig.isParamUpdate()) {
|
||||
editConfig.prepareForParamUpdate(queryModel);
|
||||
|
||||
|
@ -224,7 +225,7 @@ public class ManagePageGenerator extends BaseEditConfigurationGenerator implemen
|
|||
if (editConfig.isParamUpdate()) {
|
||||
//setup the model selectors for query, write and display models on editConfig
|
||||
setupModelSelectorsFromVitroRequest(vreq, editConfig);
|
||||
OntModel queryModel = (OntModel)vreq.getAttribute("jenaOntModel");
|
||||
OntModel queryModel = ModelAccess.on(vreq).getJenaOntModel();
|
||||
retrieveExistingDataGetterInfo(context, editConfig, queryModel);
|
||||
}
|
||||
|
||||
|
@ -589,7 +590,8 @@ private String getExistingIsSelfContainedTemplateQuery() {
|
|||
int maxMenuPosition = 0;
|
||||
Literal menuPosition = null;
|
||||
setupModelSelectorsFromVitroRequest(vreq, editConfig);
|
||||
OntModel queryModel = (OntModel)vreq.getAttribute("jenaOntModel");
|
||||
OntModel queryModel = ModelAccess.on(vreq).getJenaOntModel();
|
||||
|
||||
String maxMenuPositionQuery = getMaxMenuPositionQueryString();
|
||||
QueryExecution qe = null;
|
||||
try{
|
||||
|
|
|
@ -10,13 +10,14 @@ import java.util.Map;
|
|||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.rdf.model.Literal;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.vocabulary.RDFS;
|
||||
import com.hp.hpl.jena.vocabulary.XSD;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
|
@ -239,7 +240,7 @@ public class NewIndividualFormGenerator implements EditConfigurationGenerator {
|
|||
|
||||
private void prepareForUpdate(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
|
||||
//Here, retrieve model from
|
||||
Model model = (Model) session.getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(session.getServletContext()).getJenaOntModel();
|
||||
//This form is always doing a non-update
|
||||
editConfiguration.prepareForNonUpdate( model );
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import javax.servlet.http.HttpSession;
|
|||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.rdf.model.Literal;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.vocabulary.XSD;
|
||||
|
@ -21,6 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.DataProperty;
|
|||
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
|
@ -297,7 +299,7 @@ public class RDFSLabelGenerator implements EditConfigurationGenerator {
|
|||
|
||||
private void prepareForUpdate(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
|
||||
//Here, retrieve model from
|
||||
Model model = (Model) session.getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel model = ModelAccess.on(session.getServletContext()).getJenaOntModel();
|
||||
if( editConfiguration.isDataPropertyUpdate() ){
|
||||
editConfiguration.prepareForDataPropUpdate(model, vreq.getWebappDaoFactory().getDataPropertyDao());
|
||||
}
|
||||
|
|
|
@ -4,14 +4,12 @@ package edu.cornell.mannlib.vitro.webapp.filters;
|
|||
|
||||
import static edu.cornell.mannlib.vitro.webapp.controller.VitroRequest.SPECIAL_WRITE_MODEL;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.CONTEXT_DISPLAY_TBOX;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.DISPLAY_ONT_MODEL;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.SWITCH_TO_DISPLAY_MODEL;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_DISPLAY_MODEL_PARAM;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_MODEL_PARAM;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.USE_TBOX_MODEL_PARAM;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
@ -42,20 +40,19 @@ import edu.cornell.mannlib.vitro.webapp.auth.policy.ServletPolicyList;
|
|||
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.FilterFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.HideFromDisplayByPolicyFilter;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceGraph;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroModelSource;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringRDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.jena.model.RDFServiceModel;
|
||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
|
||||
|
||||
/**
|
||||
|
@ -138,21 +135,14 @@ public class VitroRequestPrep implements Filter {
|
|||
log.debug("Found a WebappDaoFactory in the session and using it for this request");
|
||||
}
|
||||
|
||||
// Set up the DisplayModel, with language filtering if appropriate.
|
||||
OntModel displayModel;
|
||||
Object displayModelObject = req.getSession().getAttribute(DISPLAY_ONT_MODEL);
|
||||
if (displayModelObject instanceof OntModel) {
|
||||
displayModel = (OntModel) displayModelObject;
|
||||
} else {
|
||||
displayModel = (OntModel) _context.getAttribute(DISPLAY_ONT_MODEL);
|
||||
}
|
||||
|
||||
if (Boolean.valueOf(ConfigurationProperties.getBean(vreq).getProperty(
|
||||
"RDFService.languageFilter", "true"))) {
|
||||
displayModel = LanguageFilteringUtils.wrapOntModelInALanguageFilter(displayModel, req);
|
||||
// Set up the DisplayModel with language filtering, if appropriate.
|
||||
ConfigurationProperties props = ConfigurationProperties.getBean(req);
|
||||
Boolean languageFilteringEnabled = Boolean.valueOf(props.getProperty("RDFService.languageFilter", "true"));
|
||||
if (languageFilteringEnabled) {
|
||||
OntModel displayModel = ModelAccess.on(req.getSession()).getDisplayModel();
|
||||
OntModel filteredDisplayModel = LanguageFilteringUtils.wrapOntModelInALanguageFilter(displayModel, req);
|
||||
ModelAccess.on(req).setDisplayModel(filteredDisplayModel);
|
||||
}
|
||||
vreq.setAttribute(DISPLAY_ONT_MODEL, displayModel);
|
||||
|
||||
|
||||
//Do model switching and replace the WebappDaoFactory with
|
||||
//a different version if requested by parameters
|
||||
|
@ -245,7 +235,7 @@ public class VitroRequestPrep implements Filter {
|
|||
|
||||
// If they asked for the display model, give it to them.
|
||||
if (isParameterPresent(vreq, SWITCH_TO_DISPLAY_MODEL)) {
|
||||
OntModel mainOntModel = (OntModel)_context.getAttribute( DISPLAY_ONT_MODEL);
|
||||
OntModel mainOntModel = ModelAccess.on(_context).getDisplayModel();
|
||||
OntModel tboxOntModel = (OntModel) _context.getAttribute(CONTEXT_DISPLAY_TBOX);
|
||||
setSpecialWriteModel(vreq, mainOntModel);
|
||||
|
||||
|
@ -323,7 +313,7 @@ public class VitroRequestPrep implements Filter {
|
|||
|
||||
private void setSpecialWriteModel(VitroRequest vreq, OntModel mainOntModel) {
|
||||
if (mainOntModel != null) {
|
||||
vreq.setAttribute("jenaOntModel", mainOntModel);
|
||||
ModelAccess.on(vreq).setJenaOntModel(mainOntModel);
|
||||
vreq.setAttribute(SPECIAL_WRITE_MODEL, mainOntModel);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
package edu.cornell.mannlib.vitro.webapp.search.solr;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
|
@ -11,19 +10,16 @@ import java.util.List;
|
|||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.solr.client.solrj.SolrServer;
|
||||
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
|
||||
import org.apache.solr.client.solrj.impl.XMLResponseParser;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.vocabulary.OWL;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
|
||||
|
@ -31,8 +27,6 @@ import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilterUtils;
|
|||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.beans.FileBasedProhibitedFromSearch;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.beans.StatementToURIsToUpdate;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.indexing.AdditionalURIsForContextNodes;
|
||||
import edu.cornell.mannlib.vitro.webapp.search.indexing.AdditionalURIsForDataProperties;
|
||||
|
@ -119,8 +113,8 @@ public class SolrSetup implements javax.servlet.ServletContextListener{
|
|||
context.setAttribute(SOLR_SERVER, server);
|
||||
|
||||
/* set up the individual to solr doc translation */
|
||||
OntModel jenaOntModel = ModelContext.getJenaOntModel(context);
|
||||
Model displayModel = ModelContext.getDisplayModel(context);
|
||||
OntModel jenaOntModel = ModelAccess.on(context).getJenaOntModel();
|
||||
OntModel displayModel = ModelAccess.on(context).getDisplayModel();
|
||||
|
||||
/* try to get context attribute DocumentModifiers
|
||||
* and use that as the start of the list of DocumentModifier
|
||||
|
|
|
@ -9,7 +9,6 @@ import javax.servlet.ServletContextEvent;
|
|||
import javax.servlet.ServletContextListener;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.dbcp.BasicDataSource;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.joda.time.DateTime;
|
||||
|
@ -23,7 +22,7 @@ import com.hp.hpl.jena.query.QueryFactory;
|
|||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
|
||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||
|
||||
|
@ -63,8 +62,8 @@ implements ServletContextListener {
|
|||
}
|
||||
OntModel displayModel = ModelFactory.createOntologyModel(MEM_ONT_MODEL_SPEC);
|
||||
displayModel.add(displayDbModel);
|
||||
displayModel.getBaseModel().register(new ModelSynchronizer(displayDbModel));
|
||||
ModelContext.setDisplayModel(displayModel, ctx);
|
||||
displayModel.getBaseModel().register(new ModelSynchronizer(displayDbModel));
|
||||
ModelAccess.on(ctx).setDisplayModel(displayModel);
|
||||
|
||||
//at each startup load all RDF files from directory to sub-models of display model
|
||||
initializeDisplayLoadedAtStartup(ctx, displayModel);
|
||||
|
|
|
@ -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<String>)pathSet) {
|
||||
|
|
|
@ -0,0 +1,297 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
package edu.cornell.mannlib.vitro.webapp.servlet.setup;
|
||||
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB.SDBDatasetMode.ASSERTIONS_ONLY;
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB.SDBDatasetMode.INFERENCES_ONLY;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.hp.hpl.jena.graph.BulkUpdateHandler;
|
||||
import com.hp.hpl.jena.graph.Graph;
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.ontology.OntModelSpec;
|
||||
import com.hp.hpl.jena.query.Dataset;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||
import com.hp.hpl.jena.rdf.model.ResIterator;
|
||||
import com.hp.hpl.jena.rdf.model.Resource;
|
||||
import com.hp.hpl.jena.shared.Lock;
|
||||
import com.hp.hpl.jena.util.ResourceUtils;
|
||||
import com.hp.hpl.jena.vocabulary.RDF;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess.ModelID;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceDataset;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.SpecialBulkUpdateHandlerGraph;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.jena.InitialJenaModelUtils;
|
||||
|
||||
/**
|
||||
* Sets up the content models, OntModelSelectors and webapp DAO factories.
|
||||
*/
|
||||
public class ContentModelSetup extends JenaDataSourceSetupBase
|
||||
implements javax.servlet.ServletContextListener {
|
||||
|
||||
private static final Log log = LogFactory.getLog(ContentModelSetup.class);
|
||||
|
||||
@Override
|
||||
public void contextInitialized(ServletContextEvent sce) {
|
||||
ServletContext ctx = sce.getServletContext();
|
||||
StartupStatus ss = StartupStatus.getBean(ctx);
|
||||
|
||||
long begin = System.currentTimeMillis();
|
||||
setUpJenaDataSource(ctx);
|
||||
ss.info(this, secondsSince(begin) + " seconds to set up models and DAO factories");
|
||||
}
|
||||
|
||||
private void setUpJenaDataSource(ServletContext ctx) {
|
||||
RDFServiceFactory rdfServiceFactory = RDFServiceUtils.getRDFServiceFactory(ctx);
|
||||
RDFService rdfService = rdfServiceFactory.getRDFService();
|
||||
Dataset dataset = new RDFServiceDataset(rdfService);
|
||||
setStartupDataset(dataset, ctx);
|
||||
|
||||
OntModel applicationMetadataModel = createdMemoryMappedModel(dataset, JENA_APPLICATION_METADATA_MODEL, "application metadata model");
|
||||
if (applicationMetadataModel.size()== 0) {
|
||||
JenaDataSourceSetupBase.thisIsFirstStartup();
|
||||
}
|
||||
|
||||
OntModel userAccountsModel = ModelAccess.on(ctx).getUserAccountsModel();
|
||||
OntModel displayModel = ModelAccess.on(ctx).getDisplayModel();
|
||||
OntModel baseABoxModel = createNamedModelFromDataset(dataset, JENA_DB_MODEL);
|
||||
OntModel inferenceABoxModel = createNamedModelFromDataset(dataset, JENA_INF_MODEL);
|
||||
OntModel baseTBoxModel = createdMemoryMappedModel(dataset, JENA_TBOX_ASSERTIONS_MODEL, "tbox assertions");
|
||||
OntModel inferenceTBoxModel = createdMemoryMappedModel(dataset, JENA_TBOX_INF_MODEL, "tbox inferences");
|
||||
OntModel unionABoxModel = createCombinedBulkUpdatingModel(baseABoxModel, inferenceABoxModel);
|
||||
OntModel unionTBoxModel = createCombinedBulkUpdatingModel(baseTBoxModel, inferenceTBoxModel);
|
||||
|
||||
if (isFirstStartup()) {
|
||||
loadInitialApplicationMetadataModel(applicationMetadataModel, ctx);
|
||||
loadDataFromFilesystem(baseABoxModel, baseTBoxModel, applicationMetadataModel, ctx);
|
||||
}
|
||||
|
||||
log.info("Setting up union models");
|
||||
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.setInferenceOntModel(inferenceFullModel, ctx);
|
||||
|
||||
checkForNamespaceMismatch( applicationMetadataModel, ctx );
|
||||
|
||||
OntModelSelectorImpl baseOms = new OntModelSelectorImpl();
|
||||
baseOms.setApplicationMetadataModel(applicationMetadataModel);
|
||||
baseOms.setUserAccountsModel(userAccountsModel);
|
||||
baseOms.setDisplayModel(displayModel);
|
||||
baseOms.setABoxModel(baseABoxModel);
|
||||
baseOms.setTBoxModel(baseTBoxModel);
|
||||
baseOms.setFullModel(baseFullModel);
|
||||
|
||||
OntModelSelectorImpl inferenceOms = new OntModelSelectorImpl();
|
||||
inferenceOms.setApplicationMetadataModel(applicationMetadataModel);
|
||||
inferenceOms.setUserAccountsModel(userAccountsModel);
|
||||
inferenceOms.setDisplayModel(displayModel);
|
||||
inferenceOms.setABoxModel(inferenceABoxModel);
|
||||
inferenceOms.setTBoxModel(inferenceTBoxModel);
|
||||
inferenceOms.setFullModel(inferenceFullModel);
|
||||
|
||||
OntModelSelectorImpl unionOms = new OntModelSelectorImpl();
|
||||
unionOms.setApplicationMetadataModel(applicationMetadataModel);
|
||||
unionOms.setUserAccountsModel(userAccountsModel);
|
||||
unionOms.setDisplayModel(displayModel);
|
||||
unionOms.setABoxModel(unionABoxModel);
|
||||
unionOms.setTBoxModel(unionTBoxModel);
|
||||
unionOms.setFullModel(unionFullModel);
|
||||
|
||||
ModelContext.setOntModelSelector(unionOms, ctx);
|
||||
ModelContext.setUnionOntModelSelector(unionOms, ctx); // assertions and inferences
|
||||
ModelContext.setBaseOntModelSelector(baseOms, ctx); // assertions
|
||||
ModelContext.setInferenceOntModelSelector(inferenceOms, ctx); // inferences
|
||||
|
||||
log.info("Setting up DAO factories");
|
||||
|
||||
WebappDaoFactoryConfig config = new WebappDaoFactoryConfig();
|
||||
config.setDefaultNamespace(getDefaultNamespace(ctx));
|
||||
|
||||
WebappDaoFactory baseWadf = new WebappDaoFactorySDB(rdfService, baseOms, config, ASSERTIONS_ONLY);
|
||||
ctx.setAttribute("assertionsWebappDaoFactory",baseWadf);
|
||||
|
||||
WebappDaoFactory infWadf = new WebappDaoFactorySDB(rdfService, inferenceOms, config, INFERENCES_ONLY);
|
||||
ctx.setAttribute("deductionsWebappDaoFactory", infWadf);
|
||||
|
||||
WebappDaoFactory wadf = new WebappDaoFactorySDB(rdfService, unionOms, config);
|
||||
ctx.setAttribute("webappDaoFactory",wadf);
|
||||
|
||||
log.info("Model makers set up");
|
||||
|
||||
ctx.setAttribute("defaultNamespace", getDefaultNamespace(ctx));
|
||||
}
|
||||
|
||||
private OntModel createNamedModelFromDataset(Dataset dataset, String name) {
|
||||
return ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, dataset.getNamedModel(name));
|
||||
}
|
||||
|
||||
private OntModel createdMemoryMappedModel(Dataset dataset, String name, String label) {
|
||||
try {
|
||||
Model dbModel = dataset.getNamedModel(name);
|
||||
OntModel memoryModel = ModelFactory.createOntologyModel(MEM_ONT_MODEL_SPEC);
|
||||
|
||||
if (dbModel != null) {
|
||||
long begin = System.currentTimeMillis();
|
||||
log.info("Copying cached " + label + " into memory");
|
||||
memoryModel.add(dbModel);
|
||||
log.info(secondsSince(begin) + " seconds to load " + label);
|
||||
memoryModel.getBaseModel().register(new ModelSynchronizer(dbModel));
|
||||
}
|
||||
return memoryModel;
|
||||
} catch (Throwable e) {
|
||||
throw new RuntimeException("Unable to load " + label + " from DB", e);
|
||||
}
|
||||
}
|
||||
|
||||
private OntModel createCombinedModel(OntModel oneModel, OntModel otherModel) {
|
||||
return ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM,
|
||||
ModelFactory.createUnion(oneModel, otherModel));
|
||||
}
|
||||
|
||||
private OntModel createCombinedBulkUpdatingModel(OntModel baseModel,
|
||||
OntModel otherModel) {
|
||||
BulkUpdateHandler bulkUpdateHandler = baseModel.getGraph().getBulkUpdateHandler();
|
||||
Graph unionGraph = ModelFactory.createUnion(baseModel, otherModel).getGraph();
|
||||
Model unionModel = ModelFactory.createModelForGraph(
|
||||
new SpecialBulkUpdateHandlerGraph(unionGraph, bulkUpdateHandler));
|
||||
return ModelFactory.createOntologyModel(MEM_ONT_MODEL_SPEC, unionModel);
|
||||
}
|
||||
|
||||
private void loadInitialApplicationMetadataModel(OntModel applicationMetadataModel,
|
||||
ServletContext ctx) {
|
||||
try {
|
||||
applicationMetadataModel.add(
|
||||
InitialJenaModelUtils.loadInitialModel(ctx, getDefaultNamespace(ctx)));
|
||||
} catch (Throwable e) {
|
||||
throw new RuntimeException("Unable to load application metadata model cache from DB", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void loadDataFromFilesystem(OntModel baseABoxModel, OntModel baseTBoxModel, OntModel applicationMetadataModel,
|
||||
ServletContext ctx) {
|
||||
Long startTime = System.currentTimeMillis();
|
||||
log.info("Initializing models from RDF files");
|
||||
|
||||
readOntologyFilesInPathSet(USER_ABOX_PATH, ctx, baseABoxModel);
|
||||
readOntologyFilesInPathSet(USER_TBOX_PATH, ctx, baseTBoxModel);
|
||||
readOntologyFilesInPathSet(USER_APPMETA_PATH, ctx, applicationMetadataModel);
|
||||
|
||||
log.debug(((System.currentTimeMillis() - startTime) / 1000)
|
||||
+ " seconds to read RDF files ");
|
||||
}
|
||||
|
||||
private long secondsSince(long startTime) {
|
||||
return (System.currentTimeMillis() - startTime) / 1000;
|
||||
}
|
||||
|
||||
/* ===================================================================== */
|
||||
|
||||
/**
|
||||
* If we find a "portal1" portal (and we should), its URI should use the
|
||||
* default namespace.
|
||||
*/
|
||||
private void checkForNamespaceMismatch(OntModel model, ServletContext ctx) {
|
||||
String expectedNamespace = getDefaultNamespace(ctx);
|
||||
|
||||
List<Resource> portals = getPortal1s(model);
|
||||
|
||||
if(!portals.isEmpty() && noPortalForNamespace(
|
||||
portals, expectedNamespace)) {
|
||||
// There really should be only one portal 1, but if there happen to
|
||||
// be multiple, just arbitrarily pick the first in the list.
|
||||
Resource portal = portals.get(0);
|
||||
String oldNamespace = portal.getNameSpace();
|
||||
renamePortal(portal, expectedNamespace, model);
|
||||
StartupStatus ss = StartupStatus.getBean(ctx);
|
||||
ss.warning(this, "\nThe default namespace has been changed \n" +
|
||||
"from " + oldNamespace +
|
||||
"\nto " + expectedNamespace + ".\n" +
|
||||
"The application will function normally, but " +
|
||||
"any individuals in the \n" + oldNamespace + " " +
|
||||
"namespace will need to have their URIs \n" +
|
||||
"changed in order to be served as linked data. " +
|
||||
"You can use the Ingest Tools \nto change the " +
|
||||
"URIs for a batch of resources.");
|
||||
}
|
||||
}
|
||||
|
||||
private List<Resource> getPortal1s(Model model) {
|
||||
List<Resource> portals = new ArrayList<Resource>();
|
||||
try {
|
||||
model.enterCriticalSection(Lock.READ);
|
||||
ResIterator portalIt = model.listResourcesWithProperty(
|
||||
RDF.type, PORTAL);
|
||||
while (portalIt.hasNext()) {
|
||||
Resource portal = portalIt.nextResource();
|
||||
if ("portal1".equals(portal.getLocalName())) {
|
||||
portals.add(portal);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
model.leaveCriticalSection();
|
||||
}
|
||||
return portals;
|
||||
}
|
||||
|
||||
private boolean noPortalForNamespace(List<Resource> portals, String expectedNamespace) {
|
||||
for (Resource portal : portals) {
|
||||
if(expectedNamespace.equals(portal.getNameSpace())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void renamePortal(Resource portal, String namespace, Model model) {
|
||||
model.enterCriticalSection(Lock.WRITE);
|
||||
try {
|
||||
ResourceUtils.renameResource(portal, namespace + portal.getLocalName());
|
||||
} finally {
|
||||
model.leaveCriticalSection();
|
||||
}
|
||||
}
|
||||
|
||||
/* ===================================================================== */
|
||||
|
||||
@Override
|
||||
public void contextDestroyed(ServletContextEvent sce) {
|
||||
// Nothing to do.
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -471,7 +471,7 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon {
|
|||
} else if (TripleStoreType.SDB.equals(type)) {
|
||||
StoreDesc storeDesc = new StoreDesc(
|
||||
LayoutType.LayoutTripleNodesHash, DatabaseType.fetch(dbtypeStr));
|
||||
DataSource bds = WebappDaoSetup.makeC3poDataSource(
|
||||
DataSource bds = ContentModelSetup.makeC3poDataSource(
|
||||
getDbDriverClassName(ctx), jdbcUrl, username, password, ctx);
|
||||
// DataSource bds = WebappDaoSetup.makeBasicDataSource(
|
||||
// getDbDriverClassName(ctx), jdbcUrl, username, password, ctx);
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
package edu.cornell.mannlib.vitro.webapp.servlet.setup;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceModelMaker;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroModelSource;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||
|
||||
/**
|
||||
* Sets up the content models, OntModelSelectors and webapp DAO factories.
|
||||
*/
|
||||
public class ModelMakerSetup extends JenaDataSourceSetupBase
|
||||
implements javax.servlet.ServletContextListener {
|
||||
|
||||
@Override
|
||||
public void contextInitialized(ServletContextEvent sce) {
|
||||
ServletContext ctx = sce.getServletContext();
|
||||
StartupStatus ss = StartupStatus.getBean(ctx);
|
||||
|
||||
long begin = System.currentTimeMillis();
|
||||
|
||||
RDFServiceFactory rdfServiceFactory = RDFServiceUtils.getRDFServiceFactory(ctx);
|
||||
makeModelMakerFromConnectionProperties(TripleStoreType.RDB, ctx);
|
||||
VitroJenaModelMaker vjmm = getVitroJenaModelMaker();
|
||||
setVitroJenaModelMaker(vjmm, ctx);
|
||||
makeModelMakerFromConnectionProperties(TripleStoreType.SDB, ctx);
|
||||
RDFServiceModelMaker vsmm = new RDFServiceModelMaker(rdfServiceFactory);
|
||||
setVitroJenaSDBModelMaker(vsmm, ctx);
|
||||
|
||||
//bdc34: I have no reason for vsmm vs vjmm.
|
||||
//I don't know what are the implications of this choice.
|
||||
setVitroModelSource( new VitroModelSource(vsmm,ctx), ctx);
|
||||
|
||||
ss.info(this, secondsSince(begin) + " seconds to set up models and DAO factories");
|
||||
}
|
||||
|
||||
private long secondsSince(long startTime) {
|
||||
return (System.currentTimeMillis() - startTime) / 1000;
|
||||
}
|
||||
|
||||
/* ===================================================================== */
|
||||
|
||||
@Override
|
||||
public void contextDestroyed(ServletContextEvent sce) {
|
||||
// Nothing to do.
|
||||
}
|
||||
}
|
||||
|
|
@ -13,15 +13,15 @@ import net.sf.jga.fn.UnaryFunctor;
|
|||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Property;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.EntityPropertyListFilter;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao;
|
||||
|
||||
public class PropertyMaskingSetup implements ServletContextListener {
|
||||
|
||||
private final static String ENTITY_PROPERTY_LIST_FILTER_ATTR_NAME = "entityPropertyListFilter";
|
||||
|
||||
public void contextInitialized(ServletContextEvent sce) {
|
||||
OntModel jenaOntModel = (OntModel) sce.getServletContext().getAttribute(JenaBaseDao.JENA_ONT_MODEL_ATTRIBUTE_NAME);
|
||||
OntModel jenaOntModel = ModelAccess.on(sce.getServletContext()).getJenaOntModel();
|
||||
sce.getServletContext().setAttribute(ENTITY_PROPERTY_LIST_FILTER_ATTR_NAME, new EntityPropertyListFilter(jenaOntModel));
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ import com.hp.hpl.jena.vocabulary.RDF;
|
|||
import com.hp.hpl.jena.vocabulary.RDFS;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.ontology.update.KnowledgeBaseUpdater;
|
||||
|
@ -106,7 +107,7 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
|||
settings.setUnionOntModelSelector(ModelContext.getUnionOntModelSelector(ctx));
|
||||
boolean tryMigrateDisplay = true;
|
||||
try {
|
||||
settings.setDisplayModel(ModelContext.getDisplayModel(ctx));
|
||||
settings.setDisplayModel(ModelAccess.on(ctx).getDisplayModel());
|
||||
OntModel oldTBoxModel = loadModelFromDirectory(ctx.getRealPath(OLD_TBOX_MODEL_DIR));
|
||||
settings.setOldTBoxModel(oldTBoxModel);
|
||||
OntModel newTBoxModel = loadModelFromDirectory(ctx.getRealPath(NEW_TBOX_MODEL_DIR));
|
||||
|
|
|
@ -6,7 +6,6 @@ import javax.servlet.ServletContextEvent;
|
|||
import javax.servlet.ServletContextListener;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.dbcp.BasicDataSource;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
|
@ -14,6 +13,7 @@ import com.hp.hpl.jena.ontology.OntModel;
|
|||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
|
||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||
|
||||
|
@ -65,7 +65,7 @@ public class UserModelSetup extends JenaDataSourceSetupBase
|
|||
userAccountsModel.add(userAccountsDbModel);
|
||||
userAccountsModel.getBaseModel().register(
|
||||
new ModelSynchronizer(userAccountsDbModel));
|
||||
ctx.setAttribute("userAccountsOntModel", userAccountsModel);
|
||||
ModelAccess.on(ctx).setUserAccountsModel(userAccountsModel);
|
||||
|
||||
} catch (Throwable t) {
|
||||
log.error("Unable to load user accounts model from DB", t);
|
||||
|
|
|
@ -1,385 +0,0 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
|
||||
package edu.cornell.mannlib.vitro.webapp.servlet.setup;
|
||||
|
||||
import static edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary.DISPLAY_ONT_MODEL;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.hp.hpl.jena.ontology.OntModel;
|
||||
import com.hp.hpl.jena.ontology.OntModelSpec;
|
||||
import com.hp.hpl.jena.query.Dataset;
|
||||
import com.hp.hpl.jena.rdf.model.Model;
|
||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||
import com.hp.hpl.jena.rdf.model.ResIterator;
|
||||
import com.hp.hpl.jena.rdf.model.Resource;
|
||||
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
||||
import com.hp.hpl.jena.rdf.model.Statement;
|
||||
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.vocabulary.RDF;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelSynchronizer;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceDataset;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceModelMaker;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.SpecialBulkUpdateHandlerGraph;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroModelSource;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceFactory;
|
||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.jena.InitialJenaModelUtils;
|
||||
|
||||
/**
|
||||
* Primarily sets up webapp DAO factories.
|
||||
*/
|
||||
public class WebappDaoSetup extends JenaDataSourceSetupBase
|
||||
implements javax.servlet.ServletContextListener {
|
||||
|
||||
private static final Log log = LogFactory.getLog(WebappDaoSetup.class);
|
||||
|
||||
@Override
|
||||
public void contextInitialized(ServletContextEvent sce) {
|
||||
ServletContext ctx = sce.getServletContext();
|
||||
StartupStatus ss = StartupStatus.getBean(ctx);
|
||||
|
||||
try {
|
||||
long startTime = System.currentTimeMillis();
|
||||
setUpJenaDataSource(ctx, ss);
|
||||
log.info((System.currentTimeMillis() - startTime) / 1000 +
|
||||
" seconds to set up models and DAO factories");
|
||||
} catch (Throwable t) {
|
||||
log.error("Throwable in " + this.getClass().getName(), t);
|
||||
ss.fatal(this, "Throwable in " + this.getClass().getName(), t);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void setUpJenaDataSource(ServletContext ctx, StartupStatus ss) {
|
||||
OntModelSelectorImpl baseOms = new OntModelSelectorImpl();
|
||||
OntModelSelectorImpl inferenceOms = new OntModelSelectorImpl();
|
||||
OntModelSelectorImpl unionOms = new OntModelSelectorImpl();
|
||||
|
||||
OntModel userAccountsModel = ontModelFromContextAttribute(
|
||||
ctx, "userAccountsOntModel");
|
||||
baseOms.setUserAccountsModel(userAccountsModel);
|
||||
inferenceOms.setUserAccountsModel(userAccountsModel);
|
||||
unionOms.setUserAccountsModel(userAccountsModel);
|
||||
|
||||
OntModel displayModel = ontModelFromContextAttribute(
|
||||
ctx,DISPLAY_ONT_MODEL);
|
||||
baseOms.setDisplayModel(displayModel);
|
||||
inferenceOms.setDisplayModel(displayModel);
|
||||
unionOms.setDisplayModel(displayModel);
|
||||
|
||||
RDFServiceFactory rdfServiceFactory = RDFServiceUtils.getRDFServiceFactory(ctx);
|
||||
RDFService rdfService = rdfServiceFactory.getRDFService();
|
||||
Dataset dataset = new RDFServiceDataset(rdfService);
|
||||
setStartupDataset(dataset, ctx);
|
||||
|
||||
// ABox assertions
|
||||
baseOms.setABoxModel(ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, dataset.getNamedModel(JenaDataSourceSetupBase.JENA_DB_MODEL)));
|
||||
|
||||
// ABox inferences
|
||||
inferenceOms.setABoxModel(ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, dataset.getNamedModel(JenaDataSourceSetupBase.JENA_INF_MODEL)));
|
||||
|
||||
// TBox assertions
|
||||
try {
|
||||
Model tboxAssertionsDB = dataset.getNamedModel(
|
||||
JENA_TBOX_ASSERTIONS_MODEL);
|
||||
OntModel tboxAssertions = ModelFactory.createOntologyModel(
|
||||
MEM_ONT_MODEL_SPEC);
|
||||
|
||||
if (tboxAssertionsDB != null) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
log.info("Copying cached tbox assertions into memory");
|
||||
tboxAssertions.add(tboxAssertionsDB);
|
||||
log.info((System.currentTimeMillis() - startTime)/ 1000 + " seconds to load tbox assertions");
|
||||
tboxAssertions.getBaseModel().register(new ModelSynchronizer(tboxAssertionsDB));
|
||||
}
|
||||
|
||||
baseOms.setTBoxModel(tboxAssertions);
|
||||
} catch (Throwable e) {
|
||||
log.error("Unable to load tbox assertion cache from DB", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// TBox inferences
|
||||
try {
|
||||
Model tboxInferencesDB = dataset.getNamedModel(JENA_TBOX_INF_MODEL);
|
||||
OntModel tboxInferences = ModelFactory.createOntologyModel(
|
||||
MEM_ONT_MODEL_SPEC);
|
||||
|
||||
if (tboxInferencesDB != null) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
log.info(
|
||||
"Copying cached tbox inferences into memory");
|
||||
tboxInferences.add(tboxInferencesDB);
|
||||
System.out.println((System.currentTimeMillis() - startTime)
|
||||
/ 1000 + " seconds to load tbox inferences");
|
||||
|
||||
tboxInferences.getBaseModel().register(new ModelSynchronizer(
|
||||
tboxInferencesDB));
|
||||
}
|
||||
inferenceOms.setTBoxModel(tboxInferences);
|
||||
} catch (Throwable e) {
|
||||
log.error("Unable to load tbox inference cache from DB", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// union ABox
|
||||
Model m = ModelFactory.createUnion(
|
||||
baseOms.getABoxModel(), inferenceOms.getABoxModel());
|
||||
m = ModelFactory.createModelForGraph(
|
||||
new SpecialBulkUpdateHandlerGraph(
|
||||
m.getGraph(),
|
||||
baseOms.getABoxModel().getGraph().getBulkUpdateHandler()));
|
||||
OntModel unionABoxModel = ModelFactory.createOntologyModel(
|
||||
MEM_ONT_MODEL_SPEC, m);
|
||||
unionOms.setABoxModel(unionABoxModel);
|
||||
|
||||
// union TBox
|
||||
m = ModelFactory.createUnion(baseOms.getTBoxModel(), inferenceOms.getTBoxModel());
|
||||
m = ModelFactory.createModelForGraph(
|
||||
new SpecialBulkUpdateHandlerGraph(
|
||||
m.getGraph(),
|
||||
baseOms.getTBoxModel().getGraph().getBulkUpdateHandler()));
|
||||
OntModel unionTBoxModel = ModelFactory.createOntologyModel(
|
||||
MEM_ONT_MODEL_SPEC, m);
|
||||
unionOms.setTBoxModel(unionTBoxModel);
|
||||
|
||||
|
||||
// Application metadata model is cached in memory.
|
||||
try {
|
||||
|
||||
Model applicationMetadataModelDB = dataset.getNamedModel(
|
||||
JENA_APPLICATION_METADATA_MODEL);
|
||||
OntModel applicationMetadataModel =
|
||||
ModelFactory.createOntologyModel(MEM_ONT_MODEL_SPEC);
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
System.out.println(
|
||||
"Copying cached application metadata model into memory");
|
||||
applicationMetadataModel.add(applicationMetadataModelDB);
|
||||
System.out.println((System.currentTimeMillis() - startTime)
|
||||
/ 1000 + " seconds to load application metadata model " +
|
||||
"assertions of size " + applicationMetadataModel.size());
|
||||
applicationMetadataModel.getBaseModel().register(
|
||||
new ModelSynchronizer(applicationMetadataModelDB));
|
||||
|
||||
if (applicationMetadataModel.size()== 0 /* isFirstStartup() */) {
|
||||
JenaDataSourceSetupBase.thisIsFirstStartup();
|
||||
applicationMetadataModel.add(
|
||||
InitialJenaModelUtils.loadInitialModel(
|
||||
ctx, getDefaultNamespace(ctx)));
|
||||
}
|
||||
|
||||
baseOms.setApplicationMetadataModel(applicationMetadataModel);
|
||||
inferenceOms.setApplicationMetadataModel(
|
||||
baseOms.getApplicationMetadataModel());
|
||||
unionOms.setApplicationMetadataModel(
|
||||
baseOms.getApplicationMetadataModel());
|
||||
|
||||
} catch (Throwable e) {
|
||||
log.error("Unable to load application metadata model cache from DB"
|
||||
, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
checkForNamespaceMismatch( baseOms.getApplicationMetadataModel(), ctx );
|
||||
|
||||
if (isFirstStartup()) {
|
||||
loadDataFromFilesystem(baseOms, ctx);
|
||||
}
|
||||
|
||||
log.info("Setting up union models and DAO factories");
|
||||
|
||||
// create TBox + ABox union models and set up webapp DAO factories
|
||||
Model baseDynamicUnion = ModelFactory.createUnion(baseOms.getABoxModel(),
|
||||
baseOms.getTBoxModel());
|
||||
baseDynamicUnion = ModelFactory.createModelForGraph(
|
||||
new SpecialBulkUpdateHandlerGraph(
|
||||
baseDynamicUnion.getGraph(),
|
||||
baseOms.getABoxModel().getGraph().getBulkUpdateHandler()) );
|
||||
OntModel baseUnion = ModelFactory.createOntologyModel(
|
||||
OntModelSpec.OWL_MEM, baseDynamicUnion);
|
||||
baseOms.setFullModel(baseUnion);
|
||||
ModelContext.setBaseOntModel(baseOms.getFullModel(), ctx);
|
||||
WebappDaoFactoryConfig config = new WebappDaoFactoryConfig();
|
||||
config.setDefaultNamespace(getDefaultNamespace(ctx));
|
||||
WebappDaoFactory baseWadf = new WebappDaoFactorySDB(
|
||||
rdfService, baseOms, config,
|
||||
WebappDaoFactorySDB.SDBDatasetMode.ASSERTIONS_ONLY);
|
||||
ctx.setAttribute("assertionsWebappDaoFactory",baseWadf);
|
||||
|
||||
OntModel inferenceUnion = ModelFactory.createOntologyModel(
|
||||
OntModelSpec.OWL_MEM,
|
||||
ModelFactory.createUnion(
|
||||
inferenceOms.getABoxModel(),
|
||||
inferenceOms.getTBoxModel()));
|
||||
inferenceOms.setFullModel(inferenceUnion);
|
||||
ModelContext.setInferenceOntModel(inferenceOms.getFullModel(), ctx);
|
||||
WebappDaoFactory infWadf = new WebappDaoFactorySDB(
|
||||
rdfService, inferenceOms, config,
|
||||
WebappDaoFactorySDB.SDBDatasetMode.INFERENCES_ONLY);
|
||||
ctx.setAttribute("deductionsWebappDaoFactory", infWadf);
|
||||
|
||||
OntModel masterUnion = ModelFactory.createOntologyModel(
|
||||
DB_ONT_MODEL_SPEC, dataset.getDefaultModel());
|
||||
unionOms.setFullModel(masterUnion);
|
||||
ctx.setAttribute("jenaOntModel", masterUnion);
|
||||
WebappDaoFactory wadf = new WebappDaoFactorySDB(
|
||||
rdfService, unionOms, config);
|
||||
ctx.setAttribute("webappDaoFactory",wadf);
|
||||
|
||||
ModelContext.setOntModelSelector(unionOms, ctx);
|
||||
ModelContext.setUnionOntModelSelector(unionOms, ctx);
|
||||
// assertions and inferences
|
||||
ModelContext.setBaseOntModelSelector(baseOms, ctx);
|
||||
// assertions
|
||||
ModelContext.setInferenceOntModelSelector(inferenceOms, ctx);
|
||||
// inferences
|
||||
|
||||
ctx.setAttribute("defaultNamespace", getDefaultNamespace(ctx));
|
||||
|
||||
makeModelMakerFromConnectionProperties(TripleStoreType.RDB, ctx);
|
||||
VitroJenaModelMaker vjmm = getVitroJenaModelMaker();
|
||||
setVitroJenaModelMaker(vjmm, ctx);
|
||||
makeModelMakerFromConnectionProperties(TripleStoreType.SDB, ctx);
|
||||
RDFServiceModelMaker vsmm = new RDFServiceModelMaker(rdfServiceFactory);
|
||||
setVitroJenaSDBModelMaker(vsmm, ctx);
|
||||
|
||||
//bdc34: I have no reason for vsmm vs vjmm.
|
||||
//I don't know what are the implications of this choice.
|
||||
setVitroModelSource( new VitroModelSource(vsmm,ctx), ctx);
|
||||
|
||||
log.info("Model makers set up");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* If we find a "portal1" portal (and we should), its URI should use the
|
||||
* default namespace.
|
||||
*/
|
||||
private void checkForNamespaceMismatch(OntModel model, ServletContext ctx) {
|
||||
String expectedNamespace = getDefaultNamespace(ctx);
|
||||
|
||||
List<Resource> portals = getPortal1s(model);
|
||||
|
||||
if(!portals.isEmpty() && noPortalForNamespace(
|
||||
portals, expectedNamespace)) {
|
||||
// There really should be only one portal 1, but if there happen to
|
||||
// be multiple, just arbitrarily pick the first in the list.
|
||||
Resource portal = portals.get(0);
|
||||
String oldNamespace = portal.getNameSpace();
|
||||
renamePortal(portal, expectedNamespace, model);
|
||||
StartupStatus ss = StartupStatus.getBean(ctx);
|
||||
ss.warning(this, "\nThe default namespace has been changed \n" +
|
||||
"from " + oldNamespace +
|
||||
"\nto " + expectedNamespace + ".\n" +
|
||||
"The application will function normally, but " +
|
||||
"any individuals in the \n" + oldNamespace + " " +
|
||||
"namespace will need to have their URIs \n" +
|
||||
"changed in order to be served as linked data. " +
|
||||
"You can use the Ingest Tools \nto change the " +
|
||||
"URIs for a batch of resources.");
|
||||
}
|
||||
}
|
||||
|
||||
private List<Resource> getPortal1s(Model model) {
|
||||
List<Resource> portals = new ArrayList<Resource>();
|
||||
try {
|
||||
model.enterCriticalSection(Lock.READ);
|
||||
ResIterator portalIt = model.listResourcesWithProperty(
|
||||
RDF.type, PORTAL);
|
||||
while (portalIt.hasNext()) {
|
||||
Resource portal = portalIt.nextResource();
|
||||
if ("portal1".equals(portal.getLocalName())) {
|
||||
portals.add(portal);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
model.leaveCriticalSection();
|
||||
}
|
||||
return portals;
|
||||
}
|
||||
|
||||
private boolean noPortalForNamespace(List<Resource> portals,
|
||||
String expectedNamespace) {
|
||||
for (Resource portal : portals) {
|
||||
if(expectedNamespace.equals(portal.getNameSpace())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void renamePortal(Resource portal, String namespace, Model model) {
|
||||
model.enterCriticalSection(Lock.WRITE);
|
||||
try {
|
||||
ResourceUtils.renameResource(
|
||||
portal, namespace + portal.getLocalName());
|
||||
} finally {
|
||||
model.leaveCriticalSection();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ===================================================================== */
|
||||
|
||||
|
||||
@Override
|
||||
public void contextDestroyed(ServletContextEvent sce) {
|
||||
// Nothing to do.
|
||||
}
|
||||
|
||||
private boolean isEmpty(Model model) {
|
||||
ClosableIterator<Statement> closeIt = model.listStatements(
|
||||
null, RDF.type, ResourceFactory.createResource(
|
||||
VitroVocabulary.PORTAL));
|
||||
try {
|
||||
if (closeIt.hasNext()) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} finally {
|
||||
closeIt.close();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadDataFromFilesystem(OntModelSelector baseOms,
|
||||
ServletContext ctx) {
|
||||
Long startTime = System.currentTimeMillis();
|
||||
log.info("Initializing models from RDF files");
|
||||
|
||||
readOntologyFilesInPathSet(USER_ABOX_PATH, ctx, baseOms.getABoxModel());
|
||||
readOntologyFilesInPathSet(USER_TBOX_PATH, ctx, baseOms.getTBoxModel());
|
||||
readOntologyFilesInPathSet(
|
||||
USER_APPMETA_PATH, ctx, baseOms.getApplicationMetadataModel());
|
||||
|
||||
log.debug(((System.currentTimeMillis() - startTime) / 1000)
|
||||
+ " seconds to read RDF files ");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.utils;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
|
@ -21,6 +23,7 @@ import com.hp.hpl.jena.rdf.model.Resource;
|
|||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
|
||||
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;
|
||||
|
||||
public class ApplicationConfigurationOntologyUtils {
|
||||
|
@ -28,8 +31,9 @@ public class ApplicationConfigurationOntologyUtils {
|
|||
private static final Log log = LogFactory.getLog(ApplicationConfigurationOntologyUtils.class);
|
||||
|
||||
public static List<ObjectProperty> getAdditionalFauxSubpropertiesForList(List<ObjectProperty> propList, VitroRequest vreq) {
|
||||
Model displayModel = ModelContext.getDisplayModel(vreq.getSession().getServletContext());
|
||||
Model tboxModel = ModelContext.getUnionOntModelSelector(vreq.getSession().getServletContext()).getTBoxModel();
|
||||
ServletContext ctx = vreq.getSession().getServletContext();
|
||||
Model displayModel = ModelAccess.on(ctx).getDisplayModel();
|
||||
Model tboxModel = ModelContext.getUnionOntModelSelector(ctx).getTBoxModel();
|
||||
return getAdditionalFauxSubpropertiesForList(propList, displayModel, tboxModel);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||
package edu.cornell.mannlib.vitro.webapp.utils.dataGetter;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
@ -11,9 +9,7 @@ import com.hp.hpl.jena.rdf.model.Model;
|
|||
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.jena.JenaIngestController;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaModelMaker;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSDBModelMaker;
|
||||
import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
|
||||
|
||||
public abstract class DataGetterBase implements DataGetter {
|
||||
|
||||
|
@ -29,7 +25,7 @@ public abstract class DataGetterBase implements DataGetter {
|
|||
}else if( REQUEST_JENA_ONT_MODEL.equals(modelName)){
|
||||
return vreq.getJenaOntModel();
|
||||
}else if( CONTEXT_DISPLAY_MODEL.equals(modelName)){
|
||||
return (Model)context.getAttribute( DisplayVocabulary.DISPLAY_ONT_MODEL);
|
||||
return ModelAccess.on(context).getDisplayModel();
|
||||
}else if( ! StringUtils.isEmpty( modelName)){
|
||||
Model model = JenaIngestController.getModel( modelName, vreq, context);
|
||||
if( model == null )
|
||||
|
|
|
@ -20,8 +20,8 @@ edu.cornell.mannlib.vitro.webapp.servlet.setup.RDFServiceSetup
|
|||
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ApplicationModelSetup
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.UserModelSetup
|
||||
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.WebappDaoSetup
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ModelMakerSetup
|
||||
|
||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdateKnowledgeBase
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
|
||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.Controllers" %>
|
||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
|
||||
<%@taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission" %>
|
||||
|
@ -21,7 +22,7 @@
|
|||
" FILTER(afn:bnode(?bnode) = \"" + conceptIdStr + "\")\n" +
|
||||
"}";
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
|
||||
Model conceptDescription = ModelFactory.createDefaultModel();
|
||||
try {
|
||||
ontModel.enterCriticalSection(Lock.READ);
|
||||
|
|
|
@ -4,12 +4,13 @@
|
|||
|
||||
<%@taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission" %>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
<% request.setAttribute("requestedActions", SimplePermission.USE_MISCELLANEOUS_CURATOR_PAGES.ACTION); %>
|
||||
<vitro:confirmAuthorization />
|
||||
|
||||
<%
|
||||
if (request.getParameter("execute") != null) {
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute(JenaBaseDao.ASSERTIONS_ONT_MODEL_ATTRIBUTE_NAME);
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
|
||||
int results = doRemoval(ontModel);
|
||||
request.setAttribute("removalCount", results);
|
||||
}
|
||||
|
@ -66,7 +67,7 @@
|
|||
" FILTER(afn:bnode(?bnode) = \"" + bnodeId + "\")\n" +
|
||||
"}";
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
|
||||
Model conceptDescription = ModelFactory.createDefaultModel();
|
||||
try {
|
||||
ontModel.enterCriticalSection(Lock.READ);
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
<%@taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission" %>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
<% request.setAttribute("requestedActions", SimplePermission.USE_MISCELLANEOUS_CURATOR_PAGES.ACTION); %>
|
||||
<vitro:confirmAuthorization />
|
||||
|
||||
|
@ -16,7 +17,7 @@
|
|||
String describeQueryStr =
|
||||
"DESCRIBE <" + resourceURIStr + ">";
|
||||
|
||||
OntModel ontModel = (OntModel) getServletContext().getAttribute("baseOntModel");
|
||||
OntModel ontModel = ModelAccess.on(getServletContext()).getBaseOntModel();
|
||||
Model resourceDescription = ModelFactory.createDefaultModel();
|
||||
try {
|
||||
ontModel.enterCriticalSection(Lock.READ);
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils"%>
|
||||
<%@page import="com.hp.hpl.jena.rdf.model.Model"%>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.jena.JenaBaseDao"%>
|
||||
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
<%@page import="java.io.InputStream"%>
|
||||
<%@page import="java.util.Properties"%>
|
||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.Controllers" %>
|
||||
|
@ -54,7 +55,7 @@
|
|||
}
|
||||
String contextId = sesameProperties.getProperty(SESAME_CONTEXT);
|
||||
|
||||
Model fullModel = (Model) getServletContext().getAttribute(JenaBaseDao.JENA_ONT_MODEL_ATTRIBUTE_NAME);
|
||||
Model fullModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
// Copy the model to avoid locking the main model during sync. Assumes enough memory.
|
||||
Model copyModel = ModelFactory.createDefaultModel();
|
||||
fullModel.enterCriticalSection(Lock.READ);
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<%@ page import="com.hp.hpl.jena.ontology.Individual" %>
|
||||
<%@ page import="com.hp.hpl.jena.ontology.OntModel" %>
|
||||
<%@ page import="com.hp.hpl.jena.rdf.model.ModelMaker" %>
|
||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
<%@ page import="com.hp.hpl.jena.shared.Lock" %>
|
||||
<%@ page import="java.util.Iterator" %>
|
||||
<%@ page import="java.util.List" %>
|
||||
|
@ -23,7 +24,7 @@
|
|||
<select name="workflowURI">
|
||||
|
||||
<%
|
||||
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel jenaOntModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
jenaOntModel.enterCriticalSection(Lock.READ);
|
||||
try {
|
||||
List savedQueries = (List) request.getAttribute("workflows");
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<%@ page import="com.hp.hpl.jena.ontology.Individual"%>
|
||||
<%@ page import="com.hp.hpl.jena.ontology.OntModel"%>
|
||||
<%@ page import="com.hp.hpl.jena.rdf.model.ModelMaker"%>
|
||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
<%@ page import="com.hp.hpl.jena.shared.Lock"%>
|
||||
<%@ page import="java.util.Iterator"%>
|
||||
<%@ page import="java.util.List"%>
|
||||
|
@ -46,7 +47,7 @@
|
|||
<h3>SPARQL Query <select name="savedQuery">
|
||||
<option value="">select saved query</option>
|
||||
<%
|
||||
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel jenaOntModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
jenaOntModel.enterCriticalSection(Lock.READ);
|
||||
try {
|
||||
List savedQueries = (List) request.getAttribute("savedQueries");
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<%@ page import="com.hp.hpl.jena.ontology.Individual" %>
|
||||
<%@ page import="com.hp.hpl.jena.ontology.OntModel" %>
|
||||
<%@ page import="com.hp.hpl.jena.rdf.model.ModelMaker" %>
|
||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.ModelAccess"%>
|
||||
<%@ page import="com.hp.hpl.jena.shared.Lock" %>
|
||||
<%@ page import="java.util.Iterator" %>
|
||||
<%@ page import="java.util.List" %>
|
||||
|
@ -25,7 +26,7 @@
|
|||
<select name="workflowStepURI">
|
||||
|
||||
<%
|
||||
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
|
||||
OntModel jenaOntModel = ModelAccess.on(getServletContext()).getJenaOntModel();
|
||||
jenaOntModel.enterCriticalSection(Lock.READ);
|
||||
try {
|
||||
List workflowSteps = (List) request.getAttribute("workflowSteps");
|
||||
|
|
Loading…
Add table
Reference in a new issue