From abea644f46b50cdbb38b8d6cf794de347c62dda1 Mon Sep 17 00:00:00 2001 From: Jim Blake Date: Fri, 20 Mar 2015 15:34:53 -0400 Subject: [PATCH] Ignore markdown files in RDF directories. People want to document the RDF directories (such as rdf/abox/filegraph) by adding README.md files Such files produce either a warning or an exception, depending on the directory and who is reading. Modify to ignore any file with a .md extension. --- .../webapp/servlet/setup/FileGraphSetup.java | 4 +++- .../webapp/servlet/setup/RDFFilesLoader.java | 18 ++++++++++++------ .../servlet/setup/UpdateKnowledgeBase.java | 4 +++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java index bf51f2b85..ef2f03519 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/FileGraphSetup.java @@ -40,8 +40,8 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceDataset; import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess; import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; -import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService.ModelSerializationFormat; +import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; // This ContextListener must run after the JenaDataSourceSetup ContextListener @@ -164,6 +164,8 @@ public class FileGraphSetup implements ServletContextListener { model.read( fis, null, "N3" ); } else if ( fn.endsWith(".owl") || fn.endsWith(".rdf") || fn.endsWith(".xml") ) { model.read( fis, null, "RDF/XML" ); + } else if ( fn.endsWith(".md") ) { + // Ignore markdown files - documentation. } else { log.warn("Ignoring " + type + " file graph " + p + " because the file extension is unrecognized."); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RDFFilesLoader.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RDFFilesLoader.java index aa37f3e63..d1d24f7f8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RDFFilesLoader.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/RDFFilesLoader.java @@ -34,7 +34,10 @@ public class RDFFilesLoader { private static final String FIRST_TIME = "firsttime"; private static final String EVERY_TIME = "everytime"; - /** Path filter that ignores sub-directories and hidden files. */ + /** + * Path filter that ignores sub-directories, hidden files, and markdown + * files. + */ private static final DirectoryStream.Filter RDF_FILE_FILTER = new DirectoryStream.Filter() { @Override public boolean accept(Path p) throws IOException { @@ -46,6 +49,9 @@ public class RDFFilesLoader { + p + "' ignored."); return false; } + if (p.toString().endsWith(".md")) { + return false; + } return true; } }; @@ -61,8 +67,8 @@ public class RDFFilesLoader { public static void loadFirstTimeFiles(String modelPath, Model model, boolean firstTime) { if (firstTime) { - Set paths = getPaths(locateHomeDirectory(), RDF, - modelPath, FIRST_TIME); + Set paths = getPaths(locateHomeDirectory(), RDF, modelPath, + FIRST_TIME); for (Path p : paths) { readOntologyFileIntoModel(p, model); } @@ -128,8 +134,8 @@ public class RDFFilesLoader { } /** - * Find the paths to RDF files in this directory. Sub-directories and hidden - * files are ignored. + * Find the paths to RDF files in this directory. Sub-directories, hidden + * files, and markdown files are ignored. */ private static Set getPaths(String parentDir, String... strings) { Path dir = Paths.get(parentDir, strings); @@ -153,7 +159,7 @@ public class RDFFilesLoader { private static void readOntologyFileIntoModel(Path p, Model model) { String format = getRdfFormat(p); - log.debug("Loading "+ p); + log.debug("Loading " + p); try (InputStream stream = new FileInputStream(p.toFile())) { model.read(stream, null, format); log.debug("...successful"); 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 28ee0c5f6..8710e50f9 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 @@ -532,7 +532,9 @@ public class UpdateKnowledgeBase { try { FileInputStream fis = new FileInputStream(f); try { - if (f.getName().endsWith(".n3")) { + if (f.getName().endsWith(".md")) { + // Markdown files are documentation - skip. + } else if (f.getName().endsWith(".n3")) { om.read(fis, null, "N3"); } else { om.read(fis, null, "RDF/XML");