From 6570e3dcc65d1f0658dcb4be71066e3ed2221db5 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Tue, 10 Sep 2013 09:08:55 -0400 Subject: [PATCH] merging develop into dev-isf --- .../testing/VitroTestRunListener.java | 652 +++++++++--------- .../everytime/displayDisplay.n3 | 9 +- .../rdf/displayTbox/everytime/displayTBOX.n3 | 10 +- .../ManageLabelsForIndividualGenerator.java | 23 +- .../servlet/setup/UpdateKnowledgeBase.java | 28 +- .../freemarker/lib/lib-properties.ftl | 2 +- 6 files changed, 356 insertions(+), 368 deletions(-) diff --git a/utilities/buildutils/src/edu/cornell/mannlib/vitro/utilities/testing/VitroTestRunListener.java b/utilities/buildutils/src/edu/cornell/mannlib/vitro/utilities/testing/VitroTestRunListener.java index 01245e92f..acfe6ef71 100644 --- a/utilities/buildutils/src/edu/cornell/mannlib/vitro/utilities/testing/VitroTestRunListener.java +++ b/utilities/buildutils/src/edu/cornell/mannlib/vitro/utilities/testing/VitroTestRunListener.java @@ -1,7 +1,7 @@ /* $This file is distributed under the terms of the license in /doc/license.txt$ */ -package edu.cornell.mannlib.vitro.utilities.testing; - +package edu.cornell.mannlib.vitro.utilities.testing; + import static edu.cornell.mannlib.vitro.utilities.testing.VitroTestRunner.ReportLevel.BRIEF; import static edu.cornell.mannlib.vitro.utilities.testing.VitroTestRunner.ReportLevel.FULL; import static edu.cornell.mannlib.vitro.utilities.testing.VitroTestRunner.ReportLevel.MORE; @@ -20,327 +20,327 @@ import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunListener; import edu.cornell.mannlib.vitro.utilities.testing.VitroTestRunner.ReportLevel; - -/** - * Listen to events as they come from the JUnit test runner. The events from the - * lifecycle methods are broken down into semantic chunks and executed. Three - * levels of output are available. - * - * On the surface, JUnit treats "failures" (failed assertions) the same as - * "errors" (unexpected exceptions). We're going to distinguish between them. - * - * @author jeb228 - */ -public class VitroTestRunListener extends RunListener { - private final ReportLevel reportLevel; - - private int classCount; - private int testsTotal; - private int errorsTotal; - private int failuresTotal; - private int ignoresTotal; - private long overallStartTime; - - private Class currentClass; - private int testsCurrentClass; - private int errorsCurrentClass; - private int failuresCurrentClass; - private int ignoresCurrentClass; - private long classStartTime; - - private String currentTest; - private boolean testHadError; - private boolean testFailed; - private boolean testIgnored; - private long testStartTime; - - public VitroTestRunListener(ReportLevel reportLevel) { - this.reportLevel = reportLevel; - } - - /** Did any of the tests fail or have errors? */ - public boolean didEverythingPass() { - return (failuresTotal == 0) && (errorsTotal == 0); - } - - // ------------------------------------------------------------------------- - // Life-cycle methods that will be called by the test runner. - // ------------------------------------------------------------------------- - - @Override - public void testRunStarted(Description description) throws Exception { - openTestRun(); - reportTestRunStart(); - } - - @Override - public void testStarted(Description description) throws Exception { - if (currentClass != description.getTestClass()) { - if (currentClass != null) { - closeCurrentClass(); - reportCurrentClass(); - } - - openCurrentClass(description); - reportCurrentClassStart(); - } - - openCurrentTest(description); - } - - @Override - public void testAssumptionFailure(Failure failure) { - if (isError(failure)) { - testHadError = true; - reportError(failure); - } else { - testFailed = true; - reportFailure(failure); - } - } - - @Override - public void testFailure(Failure failure) throws Exception { - if (isError(failure)) { - testHadError = true; - reportError(failure); - } else { - testFailed = true; - reportFailure(failure); - } - } - - @Override - public void testFinished(Description description) throws Exception { - closeCurrentTest(); - reportCurrentTest(); - } - - @Override - public void testIgnored(Description description) throws Exception { - testStarted(description); - testIgnored = true; - testFinished(description); - } - - @Override - public void testRunFinished(Result result) throws Exception { - if (currentClass != null) { - closeCurrentClass(); - reportCurrentClass(); - } - closeTestRun(); - reportTestRun(); - System.out.println(); - } - - // ------------------------------------------------------------------------- - // Handling the logical events. - // ------------------------------------------------------------------------- - - private void openTestRun() { - overallStartTime = System.currentTimeMillis(); - } - - private void closeTestRun() { - // Nothing to close. - } - - private void reportTestRunStart() { - if (reportLevel == FULL) { - System.out - .println("Starting test run at " + time(overallStartTime)); - System.out.println(); - } - - if (reportLevel == MORE) { - System.out - .println("Starting test run at " + time(overallStartTime)); - System.out.println(); - System.out.println("Tests Pass Error Fail Ignore Seconds"); - } - } - - private void reportTestRun() { - int successes = testsTotal - errorsTotal - failuresTotal - ignoresTotal; - - if (reportLevel != BRIEF) { - System.out.println(); - } - - System.out.format( - "Tests Pass Error Fail Ignore Seconds TOTAL (%d classes)\n", - classCount); - System.out.format(" %4d %4d %4d %4d %4d %6s\n", testsTotal, - successes, errorsTotal, failuresTotal, ignoresTotal, - elapsed(overallStartTime)); - - if (reportLevel != BRIEF) { - System.out.println("Ending test run at " - + time(System.currentTimeMillis())); - } - } - - private void openCurrentClass(Description description) { - currentClass = description.getTestClass(); - classStartTime = System.currentTimeMillis(); - testsCurrentClass = 0; - errorsCurrentClass = 0; - failuresCurrentClass = 0; - ignoresCurrentClass = 0; - } - - private void closeCurrentClass() { - classCount++; - testsTotal += testsCurrentClass; - errorsTotal += errorsCurrentClass; - failuresTotal += failuresCurrentClass; - ignoresTotal += ignoresCurrentClass; - } - - private void reportCurrentClassStart() { - if (reportLevel == FULL) { - System.out.format("Tests Pass Error Fail Ignore Seconds %s\n", - currentClass.getName()); - } - } - - private void reportCurrentClass() { - int successes = testsCurrentClass - errorsCurrentClass - - failuresCurrentClass - ignoresCurrentClass; - if (reportLevel == MORE) { - System.out.format(" %4d %4d %4d %4d %4d %6s %s\n", - testsCurrentClass, successes, errorsCurrentClass, - failuresCurrentClass, ignoresCurrentClass, - elapsed(classStartTime), currentClass.getSimpleName()); - } - if (reportLevel == FULL) { - System.out.println("-----------------------------------"); - System.out.format(" %4d %4d %4d %4d %4d %6s\n", - testsCurrentClass, successes, errorsCurrentClass, - failuresCurrentClass, ignoresCurrentClass, - elapsed(classStartTime)); - System.out.println(); - } - } - - private void openCurrentTest(Description description) { - currentTest = description.getMethodName(); - testHadError = false; - testFailed = false; - testIgnored = false; - testStartTime = System.currentTimeMillis(); - } - - private void closeCurrentTest() { - if (testHadError) { - errorsCurrentClass++; - } - if (testFailed) { - failuresCurrentClass++; - } - if (testIgnored) { - ignoresCurrentClass++; - } - testsCurrentClass++; - } - - private boolean isError(Failure failure) { - Throwable throwable = failure.getException(); - return (throwable != null) && !(throwable instanceof AssertionError); - } - - private void reportError(Failure error) { - Description description = error.getDescription(); - String methodName = description.getMethodName(); - String className = description.getTestClass().getName(); - String message = error.getMessage(); - System.out.format("EXCEPTION: test %s() in %s: %s\n", - methodName, className, message); - System.out.println(formatStackTrace(error.getException())); - } - - private void reportFailure(Failure failure) { - Description description = failure.getDescription(); - String methodName = description.getMethodName(); - String className = description.getTestClass().getName(); - String message = failure.getMessage(); - System.out.format("TEST FAILED: test %s() in %s: %s\n", methodName, - className, message); - } - - private void reportCurrentTest() { - if (reportLevel == FULL) { - char passFlag = (testIgnored | testFailed | testHadError) ? ' ' - : '1'; - char errorFlag = testHadError ? '1' : ' '; - char failFlag = testFailed ? '1' : ' '; - char ignoreFlag = testIgnored ? '1' : ' '; - System.out.format( - " %c %c %c %c %6s %s()\n", - passFlag, errorFlag, failFlag, ignoreFlag, - elapsed(testStartTime), currentTest); - } - } - - // ------------------------------------------------------------------------- - // Formatting methods. - // ------------------------------------------------------------------------- - - private final SimpleDateFormat formatter = new SimpleDateFormat( - "HH:mm:ss 'on' MMM dd, yyyy"); - - private String time(long time) { - return formatter.format(new Date(time)); - } - - /** Show elapsed time in 6 columns. */ - private String elapsed(long start) { - long interval = System.currentTimeMillis() - start; - return String.format("%6.2f", ((float) interval) / 1000.0); - } - - /** - * Trim the stack trace: don't show the line saying "23 more", and don't - * show the lines about org.junit or java.lang.reflect or sun.reflect. - * - * Once we hit some "client code", we won't trim any futher lines even if - * they belong to org.junit, or the others. - * - * If we have nested exceptions, the process repeats for each "Caused by" - * section. - */ - private String formatStackTrace(Throwable throwable) { - StringWriter w = new StringWriter(); - throwable.printStackTrace(new PrintWriter(w)); - String[] lineArray = w.toString().split("\\n"); - List lines = new ArrayList(Arrays.asList(lineArray)); - - boolean removing = true; - for (int i = lines.size() - 1; i > 0; i--) { - String line = lines.get(i); - if (removing) { - if (line.matches("\\s*[\\.\\s\\d]+more\\s*") - || line.contains("at " - + VitroTestRunner.class.getName()) - || line.contains("at org.junit.") - || line.contains("at java.lang.reflect.") - || line.contains("at sun.reflect.")) { - lines.remove(line); - } else { - removing = false; - } - } else { - if (line.contains("Caused by: ")) { - removing = true; - } - } - } - - StringBuilder result = new StringBuilder(); - for (String line : lines) { - result.append(line).append('\n'); - } - return result.toString().trim(); - } -} + +/** + * Listen to events as they come from the JUnit test runner. The events from the + * lifecycle methods are broken down into semantic chunks and executed. Three + * levels of output are available. + * + * On the surface, JUnit treats "failures" (failed assertions) the same as + * "errors" (unexpected exceptions). We're going to distinguish between them. + * + * @author jeb228 + */ +public class VitroTestRunListener extends RunListener { + private final ReportLevel reportLevel; + + private int classCount; + private int testsTotal; + private int errorsTotal; + private int failuresTotal; + private int ignoresTotal; + private long overallStartTime; + + private Class currentClass; + private int testsCurrentClass; + private int errorsCurrentClass; + private int failuresCurrentClass; + private int ignoresCurrentClass; + private long classStartTime; + + private String currentTest; + private boolean testHadError; + private boolean testFailed; + private boolean testIgnored; + private long testStartTime; + + public VitroTestRunListener(ReportLevel reportLevel) { + this.reportLevel = reportLevel; + } + + /** Did any of the tests fail or have errors? */ + public boolean didEverythingPass() { + return (failuresTotal == 0) && (errorsTotal == 0); + } + + // ------------------------------------------------------------------------- + // Life-cycle methods that will be called by the test runner. + // ------------------------------------------------------------------------- + + @Override + public void testRunStarted(Description description) throws Exception { + openTestRun(); + reportTestRunStart(); + } + + @Override + public void testStarted(Description description) throws Exception { + if (currentClass != description.getTestClass()) { + if (currentClass != null) { + closeCurrentClass(); + reportCurrentClass(); + } + + openCurrentClass(description); + reportCurrentClassStart(); + } + + openCurrentTest(description); + } + + @Override + public void testAssumptionFailure(Failure failure) { + if (isError(failure)) { + testHadError = true; + reportError(failure); + } else { + testFailed = true; + reportFailure(failure); + } + } + + @Override + public void testFailure(Failure failure) throws Exception { + if (isError(failure)) { + testHadError = true; + reportError(failure); + } else { + testFailed = true; + reportFailure(failure); + } + } + + @Override + public void testFinished(Description description) throws Exception { + closeCurrentTest(); + reportCurrentTest(); + } + + @Override + public void testIgnored(Description description) throws Exception { + testStarted(description); + testIgnored = true; + testFinished(description); + } + + @Override + public void testRunFinished(Result result) throws Exception { + if (currentClass != null) { + closeCurrentClass(); + reportCurrentClass(); + } + closeTestRun(); + reportTestRun(); + System.out.println(); + } + + // ------------------------------------------------------------------------- + // Handling the logical events. + // ------------------------------------------------------------------------- + + private void openTestRun() { + overallStartTime = System.currentTimeMillis(); + } + + private void closeTestRun() { + // Nothing to close. + } + + private void reportTestRunStart() { + if (reportLevel == FULL) { + System.out + .println("Starting test run at " + time(overallStartTime)); + System.out.println(); + } + + if (reportLevel == MORE) { + System.out + .println("Starting test run at " + time(overallStartTime)); + System.out.println(); + System.out.println("Tests Pass Error Fail Ignore Seconds"); + } + } + + private void reportTestRun() { + int successes = testsTotal - errorsTotal - failuresTotal - ignoresTotal; + + if (reportLevel != BRIEF) { + System.out.println(); + } + + System.out.format( + "Tests Pass Error Fail Ignore Seconds TOTAL (%d classes)\n", + classCount); + System.out.format(" %4d %4d %4d %4d %4d %6s\n", testsTotal, + successes, errorsTotal, failuresTotal, ignoresTotal, + elapsed(overallStartTime)); + + if (reportLevel != BRIEF) { + System.out.println("Ending test run at " + + time(System.currentTimeMillis())); + } + } + + private void openCurrentClass(Description description) { + currentClass = description.getTestClass(); + classStartTime = System.currentTimeMillis(); + testsCurrentClass = 0; + errorsCurrentClass = 0; + failuresCurrentClass = 0; + ignoresCurrentClass = 0; + } + + private void closeCurrentClass() { + classCount++; + testsTotal += testsCurrentClass; + errorsTotal += errorsCurrentClass; + failuresTotal += failuresCurrentClass; + ignoresTotal += ignoresCurrentClass; + } + + private void reportCurrentClassStart() { + if (reportLevel == FULL) { + System.out.format("Tests Pass Error Fail Ignore Seconds %s\n", + currentClass.getName()); + } + } + + private void reportCurrentClass() { + int successes = testsCurrentClass - errorsCurrentClass + - failuresCurrentClass - ignoresCurrentClass; + if (reportLevel == MORE) { + System.out.format(" %4d %4d %4d %4d %4d %6s %s\n", + testsCurrentClass, successes, errorsCurrentClass, + failuresCurrentClass, ignoresCurrentClass, + elapsed(classStartTime), currentClass.getSimpleName()); + } + if (reportLevel == FULL) { + System.out.println("-----------------------------------"); + System.out.format(" %4d %4d %4d %4d %4d %6s\n", + testsCurrentClass, successes, errorsCurrentClass, + failuresCurrentClass, ignoresCurrentClass, + elapsed(classStartTime)); + System.out.println(); + } + } + + private void openCurrentTest(Description description) { + currentTest = description.getMethodName(); + testHadError = false; + testFailed = false; + testIgnored = false; + testStartTime = System.currentTimeMillis(); + } + + private void closeCurrentTest() { + if (testHadError) { + errorsCurrentClass++; + } + if (testFailed) { + failuresCurrentClass++; + } + if (testIgnored) { + ignoresCurrentClass++; + } + testsCurrentClass++; + } + + private boolean isError(Failure failure) { + Throwable throwable = failure.getException(); + return (throwable != null) && !(throwable instanceof AssertionError); + } + + private void reportError(Failure error) { + Description description = error.getDescription(); + String methodName = description.getMethodName(); + String className = description.getTestClass().getName(); + String message = error.getMessage(); + System.out.format("EXCEPTION: test %s() in %s: %s\n", + methodName, className, message); + System.out.println(formatStackTrace(error.getException())); + } + + private void reportFailure(Failure failure) { + Description description = failure.getDescription(); + String methodName = description.getMethodName(); + String className = description.getTestClass().getName(); + String message = failure.getMessage(); + System.out.format("TEST FAILED: test %s() in %s: %s\n", methodName, + className, message); + } + + private void reportCurrentTest() { + if (reportLevel == FULL) { + char passFlag = (testIgnored | testFailed | testHadError) ? ' ' + : '1'; + char errorFlag = testHadError ? '1' : ' '; + char failFlag = testFailed ? '1' : ' '; + char ignoreFlag = testIgnored ? '1' : ' '; + System.out.format( + " %c %c %c %c %6s %s()\n", + passFlag, errorFlag, failFlag, ignoreFlag, + elapsed(testStartTime), currentTest); + } + } + + // ------------------------------------------------------------------------- + // Formatting methods. + // ------------------------------------------------------------------------- + + private final SimpleDateFormat formatter = new SimpleDateFormat( + "HH:mm:ss 'on' MMM dd, yyyy"); + + private String time(long time) { + return formatter.format(new Date(time)); + } + + /** Show elapsed time in 6 columns. */ + private String elapsed(long start) { + long interval = System.currentTimeMillis() - start; + return String.format("%6.2f", ((float) interval) / 1000.0); + } + + /** + * Trim the stack trace: don't show the line saying "23 more", and don't + * show the lines about org.junit or java.lang.reflect or sun.reflect. + * + * Once we hit some "client code", we won't trim any futher lines even if + * they belong to org.junit, or the others. + * + * If we have nested exceptions, the process repeats for each "Caused by" + * section. + */ + private String formatStackTrace(Throwable throwable) { + StringWriter w = new StringWriter(); + throwable.printStackTrace(new PrintWriter(w)); + String[] lineArray = w.toString().split("\\n"); + List lines = new ArrayList(Arrays.asList(lineArray)); + + boolean removing = true; + for (int i = lines.size() - 1; i > 0; i--) { + String line = lines.get(i); + if (removing) { + if (line.matches("\\s*[\\.\\s\\d]+more\\s*") + || line.contains("at " + + VitroTestRunner.class.getName()) + || line.contains("at org.junit.") + || line.contains("at java.lang.reflect.") + || line.contains("at sun.reflect.")) { + lines.remove(line); + } else { + removing = false; + } + } else { + if (line.contains("Caused by: ")) { + removing = true; + } + } + } + + StringBuilder result = new StringBuilder(); + for (String line : lines) { + result.append(line).append('\n'); + } + return result.toString().trim(); + } +} diff --git a/webapp/rdf/displayDisplay/everytime/displayDisplay.n3 b/webapp/rdf/displayDisplay/everytime/displayDisplay.n3 index 8b30c3945..4323bd43e 100644 --- a/webapp/rdf/displayDisplay/everytime/displayDisplay.n3 +++ b/webapp/rdf/displayDisplay/everytime/displayDisplay.n3 @@ -2,6 +2,7 @@ @prefix xsd: . @prefix owl: . @prefix rdf: . +@prefix display: . rdf:type a owl:ObjectProperty ; @@ -12,16 +13,16 @@ rdf:type "true"^^xsd:boolean ; - "true"^^xsd:boolean ; + "true"^^xsd:boolean . display:requiresAction a owl:ObjectProperty ; rdfs:label "Required Action"@en-US ; - rdfs:comment "Indicates that a resource has a required action that may need to be authorized" . - rdfs:range display:RequiredAction . + rdfs:comment "Indicates that a resource has a required action that may need to be authorized" ; + rdfs:range display:RequiredAction ; "true"^^xsd:boolean ; - "true"^^xsd:boolean ; + "true"^^xsd:boolean . diff --git a/webapp/rdf/displayTbox/everytime/displayTBOX.n3 b/webapp/rdf/displayTbox/everytime/displayTBOX.n3 index dd3bf4ea7..f43eebd8c 100644 --- a/webapp/rdf/displayTbox/everytime/displayTBOX.n3 +++ b/webapp/rdf/displayTbox/everytime/displayTBOX.n3 @@ -12,7 +12,7 @@ owl:Class a owl:Class . owl:Ontology a owl:Class . owl:AnnotationProperty a owl:Class . -owl:DatatypeProperty a owl: +owl:DatatypeProperty a owl:Class . owl:ObjectProperty a owl:Class . ###Display Model @@ -35,11 +35,11 @@ display:InternalClassesPage a owl:Class . display:DataGetter a owl:Class . display:RequiredAction a owl:Class ; - rdfs:comment "Represents a action that may need authorization to perform.". + rdfs:comment "Represents a action that may need authorization to perform." . a owl:Class ; - rdfs:comment "Data getter for running a SPARQL query." + rdfs:comment "Data getter for running a SPARQL query." . a owl:Class ; @@ -55,11 +55,11 @@ display:RequiredAction a owl:Class ; a owl:Class ; - rdfs:comment "A data getter for a VClassGroup page". + rdfs:comment "A data getter for a VClassGroup page" . a owl:Class ; - rdfs:comment "A data getter for a Fixed piece of HTML stored in RDF". + rdfs:comment "A data getter for a Fixed piece of HTML stored in RDF" . a owl:Class . diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManageLabelsForIndividualGenerator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManageLabelsForIndividualGenerator.java index d34c1c5da..80c20e573 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManageLabelsForIndividualGenerator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/ManageLabelsForIndividualGenerator.java @@ -17,33 +17,20 @@ 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.query.Dataset; -import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.rdf.model.Literal; -import com.hp.hpl.jena.rdf.model.RDFNode; -import com.hp.hpl.jena.shared.Lock; -import com.hp.hpl.jena.sparql.resultset.ResultSetMem; import com.hp.hpl.jena.vocabulary.RDFS; -import com.hp.hpl.jena.vocabulary.XSD; import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.ifaces.RequestActionConstants; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.propstmt.AddDataPropertyStatement; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.propstmt.AddObjectPropertyStatement; -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.beans.Property; import edu.cornell.mannlib.vitro.webapp.beans.VClass; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; -import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; -import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; -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.jena.QueryUtils; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils; @@ -51,8 +38,6 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTw import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ManageLabelsForIndividualPreprocessor; -import edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionDataGetter; -import edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectorUtilities; import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel; @@ -335,7 +320,7 @@ public class ManageLabelsForIndividualGenerator extends BaseEditConfigurationGen RequestActionConstants.SOME_URI); AddObjectPropertyStatement aops = new AddObjectPropertyStatement( vreq.getJenaOntModel(), individual.getURI(), - RequestActionConstants.SOME_URI, + RequestActionConstants.SOME_PREDICATE, RequestActionConstants.SOME_URI); return PolicyHelper.isAuthorizedForActions(vreq, new Actions(adps).or(aops)); } @@ -401,8 +386,8 @@ public class ManageLabelsForIndividualGenerator extends BaseEditConfigurationGen //This should put the label in the list //Create label information instance with the required information //To generate link - DataPropertyStatementTemplateModel dpstm = new DataPropertyStatementTemplateModel(subjectUri, propertyUri, l, - template, vreq); + DataPropertyStatementTemplateModel dpstm = new DataPropertyStatementTemplateModel( + subjectUri, new Property(propertyUri), l, template, vreq); labelsList.add(new LabelInformation( l, dpstm.getEditUrl(), dpstm.getDeleteUrl(), languageTag, languageName)); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java index 2a698e4d5..3defaa3cc 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java @@ -58,9 +58,7 @@ public class UpdateKnowledgeBase implements ServletContextListener { private static final String ASK_QUERY_FILE = DATA_DIR + "askUpdated.sparql"; private static final String SUCCESS_ASSERTIONS_FILE = DATA_DIR + "success.n3"; private static final String OLD_TBOX_MODEL_DIR = DATA_DIR + "oldVersion/"; - private static final String NEW_TBOX_MODEL_DIR = "/WEB-INF/filegraph/tbox/"; private static final String OLD_TBOX_ANNOTATIONS_DIR = DATA_DIR + "oldAnnotations/"; - private static final String NEW_TBOX_ANNOTATIONS_DIR = "/WEB-INF/ontologies/user/tbox/"; //For display model migration private static final String OLD_DISPLAYMODEL_TBOX_PATH = DATA_DIR + "oldDisplayModel/displayTBOX.n3"; private static final String NEW_DISPLAYMODEL_TBOX_PATH = "/WEB-INF/ontologies/app/menuload/displayTBOX.n3"; @@ -85,17 +83,21 @@ public class UpdateKnowledgeBase implements ServletContextListener { settings.setAssertionOntModelSelector(ModelAccess.on(ctx).getBaseOntModelSelector()); settings.setInferenceOntModelSelector(ModelAccess.on(ctx).getInferenceOntModelSelector()); settings.setUnionOntModelSelector(ModelAccess.on(ctx).getUnionOntModelSelector()); - boolean tryMigrateDisplay = true; + + ConfigurationProperties props = ConfigurationProperties.getBean(ctx); + Path homeDir = Paths.get(props.getProperty("vitro.home")); + settings.setDisplayModel(ModelAccess.on(ctx).getDisplayModel()); + OntModel oldTBoxModel = loadModelFromDirectory(ctx.getRealPath(OLD_TBOX_MODEL_DIR)); + settings.setOldTBoxModel(oldTBoxModel); + OntModel newTBoxModel = loadModelFromDirectory(createDirectory(homeDir, "rdf", "tbox", "filegraph").toString()); + settings.setNewTBoxModel(newTBoxModel); + OntModel oldTBoxAnnotationsModel = loadModelFromDirectory(ctx.getRealPath(OLD_TBOX_ANNOTATIONS_DIR)); + settings.setOldTBoxAnnotationsModel(oldTBoxAnnotationsModel); + OntModel newTBoxAnnotationsModel = loadModelFromDirectory(createDirectory(homeDir, "rdf", "tbox", "everytime").toString()); + settings.setNewTBoxAnnotationsModel(newTBoxAnnotationsModel); + + boolean tryMigrateDisplay = true; try { - 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)); - settings.setNewTBoxModel(newTBoxModel); - OntModel oldTBoxAnnotationsModel = loadModelFromDirectory(ctx.getRealPath(OLD_TBOX_ANNOTATIONS_DIR)); - settings.setOldTBoxAnnotationsModel(oldTBoxAnnotationsModel); - OntModel newTBoxAnnotationsModel = loadModelFromDirectory(ctx.getRealPath(NEW_TBOX_ANNOTATIONS_DIR)); - settings.setNewTBoxAnnotationsModel(newTBoxAnnotationsModel); //Display model tbox and display metadata //old display model tbox model OntModel oldDisplayModelTboxModel = loadModelFromFile(ctx.getRealPath(OLD_DISPLAYMODEL_TBOX_PATH)); @@ -117,7 +119,7 @@ public class UpdateKnowledgeBase implements ServletContextListener { OntModel oldDisplayModelVivoListView = loadModelFromFile(ctx.getRealPath(OLD_DISPLAYMODEL_VIVOLISTVIEW_PATH)); settings.setVivoListViewConfigDisplayModel(oldDisplayModelVivoListView); } catch (Exception e) { - log.info("Unable to read display model migration files. " + e.getMessage()); + log.info("Unable to read display model migration files. ", e); tryMigrateDisplay = false; } diff --git a/webapp/web/templates/freemarker/lib/lib-properties.ftl b/webapp/web/templates/freemarker/lib/lib-properties.ftl index ee72732c0..bdfc721d5 100644 --- a/webapp/web/templates/freemarker/lib/lib-properties.ftl +++ b/webapp/web/templates/freemarker/lib/lib-properties.ftl @@ -212,7 +212,7 @@ name will be used as the label. --> <#assign labelPropertyUri = ("http://www.w3.org/2000/01/rdf-schema#label"?url) /> <#assign useEditLink = false /> <#--edit link used if in edit mode and only one label and one language--> - <#if labelCount = 1 && editable && localeCount = 1 > + <#if labelCount = 1 && editable> <#assign useEditLink = true/> <#local label = individual.nameStatement>