From 3ad00d0acec81563e37534d27edce7740c3d3d04 Mon Sep 17 00:00:00 2001 From: bjl23 Date: Mon, 7 Feb 2011 15:37:56 +0000 Subject: [PATCH] NIHVIVO-2049 fix so classes, classgroups, etc. don't get indexed --- .../webapp/dao/jena/IndividualDaoSDB.java | 4 +++ .../setup/JenaDataSourceSetupBase.java | 2 +- .../servlet/setup/JenaDataSourceSetupSDB.java | 31 +++++++++++++++---- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java index bd5ef04e8..44ad51d27 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/IndividualDaoSDB.java @@ -47,6 +47,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.dao.jena.IndividualSDB.IndividualNotFoundException; import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB.SDBDatasetMode; +import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase; public class IndividualDaoSDB extends IndividualDaoJena { @@ -333,8 +334,11 @@ public class IndividualDaoSDB extends IndividualDaoJena { final List list = new LinkedList(); + // get all labeled resources from any non-tbox and non-metadata graphs. String query = "SELECT DISTINCT ?ind WHERE { \n" + " GRAPH ?g { ?ind <" + RDFS.label.getURI() + "> ?label } \n" + + " FILTER (?g != <" + JenaDataSourceSetupBase.JENA_APPLICATION_METADATA_MODEL + "> " + + " && !regex(str(?g),\"tbox\")) \n " + "}"; Query q = QueryFactory.create(query); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java index 22341ab58..4ce6ceb39 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupBase.java @@ -110,7 +110,7 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon { // This model doesn't exist yet. It's a placeholder for the application // ontology. - static final String JENA_APPLICATION_METADATA_MODEL = + public static final String JENA_APPLICATION_METADATA_MODEL = "http://vitro.mannlib.cornell.edu/default/vitro-kb-applicationMetadata"; // This is Brian C's application.owl file. We may not have to be concerned diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSDB.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSDB.java index b1dde163d..b739e38d2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSDB.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/JenaDataSourceSetupSDB.java @@ -36,6 +36,7 @@ import com.hp.hpl.jena.sdb.StoreDesc; import com.hp.hpl.jena.sdb.sql.SDBConnection; import com.hp.hpl.jena.sdb.store.DatabaseType; import com.hp.hpl.jena.sdb.store.LayoutType; +import com.hp.hpl.jena.sdb.util.StoreUtils; import com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.util.iterator.ClosableIterator; import com.hp.hpl.jena.vocabulary.RDF; @@ -317,6 +318,19 @@ public class JenaDataSourceSetupSDB extends JenaDataSourceSetupBase implements j } catch (MigrationRequiredError mre) { throw new MigrationRequiredError(mre.getMessage()); + } catch (SQLException sqle) { + + // SQL exceptions are fatal and should halt startup + AbortStartup.abortStartup(sce.getServletContext()); + + log.error("Error using SQL database; startup aborted.", sqle); + + // print to catalina.out for good measure + System.out.println("Error using SQL database; startup aborted."); + sqle.printStackTrace(); + + throw new Error(this.getClass().getName() + "failed"); + } catch (Throwable t) { log.error("Throwable in " + this.getClass().getName(), t); // printing the error because Tomcat doesn't print context listener @@ -615,6 +629,10 @@ public class JenaDataSourceSetupSDB extends JenaDataSourceSetupBase implements j getAppMetadata(memModel, applicationMetadataModel); log.info("During initial SDB setup, created an application metadata model of size " + applicationMetadataModel.size()); + + // remove application metadata from ABox model + aboxAssertions.remove(applicationMetadataModel); + aboxInferences.remove(applicationMetadataModel); // Make sure the reasoner takes into account the newly-set-up data. SimpleReasonerSetup.setRecomputeRequired(ctx); @@ -631,12 +649,13 @@ public class JenaDataSourceSetupSDB extends JenaDataSourceSetupBase implements j * @param store * @return */ - private boolean isSetUp(Store store) { - try { - return (SDBFactory.connectNamedModel(store, JenaDataSourceSetupBase.JENA_TBOX_ASSERTIONS_MODEL)).size() > 0; - } catch (Exception e) { - return false; - } + private boolean isSetUp(Store store) throws SQLException { + return StoreUtils.isFormatted(store); +// try { +// return (SDBFactory.connectNamedModel(store, JenaDataSourceSetupBase.JENA_TBOX_ASSERTIONS_MODEL)).size() > 0; +// } catch (Exception e) { +// return false; +// } } private static final String STOREDESC_ATTR = "storeDesc";