UAdapting VitroRequestPrep to use a WebappDaoFactory for a different model based on parameter - additional changes still expected.
This commit is contained in:
parent
b8c058384f
commit
ff35554bf8
2 changed files with 60 additions and 3 deletions
|
@ -33,6 +33,7 @@ import com.hp.hpl.jena.vocabulary.OWL;
|
||||||
import com.hp.hpl.jena.vocabulary.RDF;
|
import com.hp.hpl.jena.vocabulary.RDF;
|
||||||
import com.hp.hpl.jena.vocabulary.RDFS;
|
import com.hp.hpl.jena.vocabulary.RDFS;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.ApplicationDao;
|
import edu.cornell.mannlib.vitro.webapp.dao.ApplicationDao;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.Classes2ClassesDao;
|
import edu.cornell.mannlib.vitro.webapp.dao.Classes2ClassesDao;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao;
|
import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao;
|
||||||
|
@ -61,6 +62,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener;
|
||||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
|
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.PropertyGroupDaoJena;
|
||||||
|
|
||||||
public class WebappDaoFactoryJena implements WebappDaoFactory {
|
public class WebappDaoFactoryJena implements WebappDaoFactory {
|
||||||
|
|
||||||
|
@ -630,5 +632,32 @@ public class WebappDaoFactoryJena implements WebappDaoFactory {
|
||||||
applicationDao.close();
|
applicationDao.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Method for using special model for webapp dao factory, such as display model
|
||||||
|
//This is still in flux, am checking in to allow others to experiment
|
||||||
|
public void setSpecialDataModel(OntModel specialModel, OntModel specialTboxModel) {
|
||||||
|
WebappDaoFactoryJena specialWadfj = new WebappDaoFactoryJena(specialModel);
|
||||||
|
entityWebappDao = specialWadfj.getIndividualDao();
|
||||||
|
keys2EntsDao = specialWadfj.getKeys2EntsDao();
|
||||||
|
keywordDao = specialWadfj.getKeywordDao();
|
||||||
|
linksDao = specialWadfj.getLinksDao();
|
||||||
|
linktypeDao = specialWadfj.getLinktypeDao();
|
||||||
|
vClassGroupDao = specialWadfj.getVClassGroupDao();
|
||||||
|
//To allow for testing, add a property group, this will allow
|
||||||
|
//the unassigned group method section to be executed and main Image to be assigned to that group
|
||||||
|
//otherwise the dummy group does not allow for the unassigned group to be executed
|
||||||
|
|
||||||
|
propertyGroupDao = specialWadfj.getPropertyGroupDao();
|
||||||
|
PropertyGroup pgtest = new edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup();
|
||||||
|
pgtest.setName("testname");
|
||||||
|
pgtest.setDisplayRank(1);
|
||||||
|
propertyGroupDao.insertNewPropertyGroup(pgtest);
|
||||||
|
//?Simple ont model selector uses submodels - unsure if relevant here
|
||||||
|
//|| ontModelSelector instanceof SimpleOntModelSelector
|
||||||
|
if(ontModelSelector instanceof OntModelSelectorImpl ) {
|
||||||
|
OntModelSelectorImpl omsImpl = (OntModelSelectorImpl) ontModelSelector;
|
||||||
|
omsImpl.setTBoxModel(specialTboxModel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,11 +18,15 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
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.query.Dataset;
|
||||||
|
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers;
|
import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers;
|
||||||
import edu.cornell.mannlib.vitro.webapp.auth.policy.ServletPolicyList;
|
import edu.cornell.mannlib.vitro.webapp.auth.policy.ServletPolicyList;
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
|
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
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.WebappDaoFactoryFiltering;
|
||||||
|
@ -30,7 +34,8 @@ 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.HideFromDisplayByPolicyFilter;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
|
||||||
|
import org.apache.commons.dbcp.BasicDataSource;
|
||||||
/**
|
/**
|
||||||
* This sets up several objects in the Request scope for each
|
* This sets up several objects in the Request scope for each
|
||||||
* incoming HTTP request. This is done in a Filter so
|
* incoming HTTP request. This is done in a Filter so
|
||||||
|
@ -121,7 +126,9 @@ public class VitroRequestPrep implements Filter {
|
||||||
wdf = (WebappDaoFactory) o;
|
wdf = (WebappDaoFactory) o;
|
||||||
log.debug("Found a WebappDaoFactory in the session and using it for this request");
|
log.debug("Found a WebappDaoFactory in the session and using it for this request");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkForSpecialWDF(vreq, wdf);
|
||||||
|
|
||||||
VitroFilters filters = null;
|
VitroFilters filters = null;
|
||||||
|
|
||||||
filters = getFiltersFromContextFilterFactory(req, wdf);
|
filters = getFiltersFromContextFilterFactory(req, wdf);
|
||||||
|
@ -191,5 +198,26 @@ public class VitroRequestPrep implements Filter {
|
||||||
// Nothing to do.
|
// Nothing to do.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//check if special model - this is for enabling the use of a different model for menu management
|
||||||
|
private void checkForSpecialWDF(VitroRequest vreq, WebappDaoFactory wadf) {
|
||||||
|
if(vreq.getParameter("test") != null) {
|
||||||
|
if(wadf instanceof WebappDaoFactoryJena) {
|
||||||
|
WebappDaoFactoryJena wadfj = (WebappDaoFactoryJena) wadf;
|
||||||
|
OntModel testDisplayModel = (OntModel) _context.getAttribute("displayOntModel");
|
||||||
|
|
||||||
|
//Hardcoding tbox model uri for now
|
||||||
|
String tboxModelUri = "http://vitro.mannlib.cornell.edu/default/vitro-kb-displayMetadataTBOX";
|
||||||
|
BasicDataSource bds = JenaDataSourceSetupBase.getApplicationDataSource(_context);
|
||||||
|
//Model dbPlainModel = JenaDataSourceSetupBase.makeDBModelFromConfigurationProperties(tboxModelUri, OntModelSpec.OWL_MEM, _context);
|
||||||
|
String dbType = ConfigurationProperties.getBean(_context).getProperty( // database type
|
||||||
|
"VitroConnection.DataSource.dbtype", "MySQL");
|
||||||
|
com.hp.hpl.jena.rdf.model.Model displayTboxModel = JenaDataSourceSetupBase.makeDBModel(bds, tboxModelUri, OntModelSpec.OWL_MEM, JenaDataSourceSetupBase.TripleStoreType.RDB, dbType, _context);
|
||||||
|
System.out.println("Checking what the display tbox model is returning");
|
||||||
|
displayTboxModel.write(System.out, "N3");
|
||||||
|
OntModel displayTboxOntModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, displayTboxModel);
|
||||||
|
|
||||||
|
wadfj.setSpecialDataModel(testDisplayModel, displayTboxOntModel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue