From 33f39989f6e37b53cc97eeaa550c98dceb23c36a Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Thu, 26 Apr 2012 17:59:25 +0000 Subject: [PATCH] nearly complete support for running Vitro from an arbitrary SPARQL endpoint --- .../mannlib/vitro/webapp/dao/jena/IndividualSDB.java | 6 ++++++ .../vitro/webapp/dao/jena/SparqlDatasetGraph.java | 7 +++---- .../vitro/webapp/filters/WebappDaoFactorySDBPrep.java | 6 +++--- .../webapp/filters/WebappDaoFactorySparqlPrep.java | 3 ++- .../servlet/setup/JenaDataSourceSetupSparql2.java | 11 ++++++----- .../webapp/servlet/setup/SimpleReasonerSetup.java | 7 ------- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java index 6700ca1a3..f52b1edfa 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualSDB.java @@ -135,6 +135,12 @@ public class IndividualSDB extends IndividualImpl implements Individual { QueryFactory.create(getStatements), dataset) .execConstruct(); } finally { + if (dataset == null) { + throw new RuntimeException("dataset is null"); + } else if (dataset.getLock() == null) { + throw new RuntimeException("dataset lock is null"); + } + dataset.getLock().leaveCriticalSection(); w.close(); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlDatasetGraph.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlDatasetGraph.java index 590961562..ab6bedb88 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlDatasetGraph.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlDatasetGraph.java @@ -21,13 +21,12 @@ 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.ResourceFactory; import com.hp.hpl.jena.shared.Lock; +import com.hp.hpl.jena.shared.LockMRSW; import com.hp.hpl.jena.sparql.core.DatasetGraph; import com.hp.hpl.jena.sparql.core.Quad; import com.hp.hpl.jena.sparql.resultset.ResultSetMem; import com.hp.hpl.jena.sparql.util.Context; -import com.hp.hpl.jena.sparql.util.NodeFactory; import com.hp.hpl.jena.util.iterator.SingletonIterator; import com.hp.hpl.jena.util.iterator.WrappedIterator; @@ -35,6 +34,7 @@ public class SparqlDatasetGraph implements DatasetGraph { private String endpointURI; private Repository repository; + private Lock lock = new LockMRSW(); public SparqlDatasetGraph(String endpointURI) { this.endpointURI = endpointURI; @@ -171,8 +171,7 @@ public class SparqlDatasetGraph implements DatasetGraph { @Override public Lock getLock() { - // TODO Auto-generated method stub - return null; + return lock; } @Override diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySDBPrep.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySDBPrep.java index 3096eec05..900497404 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySDBPrep.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySDBPrep.java @@ -204,13 +204,13 @@ public class WebappDaoFactorySDBPrep implements Filter { //datasource.addNamedModel("fake:fake", m); //dataset = datasource; - WebappDaoFactory wadf = new WebappDaoFactoryJena(oms, config); - //wadf = new WebappDaoFactorySDB(oms, dataset, config); + //WebappDaoFactory wadf = new WebappDaoFactoryJena(oms, config); + WebappDaoFactory wadf = new WebappDaoFactorySDB(oms, dataset, config); vreq.setWebappDaoFactory(wadf); vreq.setFullWebappDaoFactory(wadf); vreq.setUnfilteredWebappDaoFactory(wadf); vreq.setWebappDaoFactory(wadf); - vreq.setAssertionsWebappDaoFactory(wadf); + //vreq.setAssertionsWebappDaoFactory(wadf); vreq.setDataset(dataset); vreq.setJenaOntModel(om); vreq.setOntModelSelector(oms); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySparqlPrep.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySparqlPrep.java index 459a9d53b..2812c9434 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySparqlPrep.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/WebappDaoFactorySparqlPrep.java @@ -156,13 +156,14 @@ public class WebappDaoFactorySparqlPrep implements Filter { //datasource.addNamedModel("fake:fake", m); //dataset = datasource; + vreq.setAssertionsWebappDaoFactory(wadf); + wadf = new WebappDaoFactoryJena(oms, config); //wadf = new WebappDaoFactorySDB(oms, dataset, config); vreq.setWebappDaoFactory(wadf); vreq.setFullWebappDaoFactory(wadf); vreq.setUnfilteredWebappDaoFactory(wadf); vreq.setWebappDaoFactory(wadf); - vreq.setAssertionsWebappDaoFactory(wadf); vreq.setDataset(dataset); vreq.setJenaOntModel(om); vreq.setOntModelSelector(oms); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSparql2.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSparql2.java index b9c0c80d2..c1c8050bb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSparql2.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSparql2.java @@ -249,16 +249,17 @@ public class JenaDataSourceSetupSparql2 extends JenaDataSourceSetupBase applicationMetadataModel.getBaseModel().register( new ModelSynchronizer(applicationMetadataModelDB)); - if (isFirstStartup()) { + if (applicationMetadataModel.size()== 0 /* isFirstStartup() */) { applicationMetadataModel.add( InitialJenaModelUtils.loadInitialModel( ctx, getDefaultNamespace(ctx))); - } else if (applicationMetadataModelDB.size() == 0) { - repairAppMetadataModel( - applicationMetadataModel, aboxAssertions, - aboxInferences); } +// else if (applicationMetadataModelDB.size() == 0) { +// repairAppMetadataModel( +// applicationMetadataModel, aboxAssertions, +// aboxInferences); +// } baseOms.setApplicationMetadataModel(applicationMetadataModel); inferenceOms.setApplicationMetadataModel( diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java index bf0e3d63d..6e967fca4 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java @@ -45,13 +45,6 @@ public class SimpleReasonerSetup implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { - // temporary scaffolding in the rdfapi dev branch - // TODO remove me - if (ConfigurationProperties.getBean(sce).getProperty( - "VitroConnection.DataSource.endpointURI") != null) { - return; - } - try { // set up Pellet reasoning for the TBox