# HG changeset patch # User Robert Casties # Date 1520606060 -3600 # Node ID 395d56ba011253f0de7150af144ddcf72b1be045 # Parent f0daa76caba17b928bf7acb4c7b171ebd59a1706 10: Allow Texter Servlet to Deliver Json Files Task-Url: http://github.com/robcast/digilib/issues/10 diff -r f0daa76caba1 -r 395d56ba0112 common/src/main/java/digilib/io/FileOps.java --- a/common/src/main/java/digilib/io/FileOps.java Fri Mar 09 15:32:39 2018 +0100 +++ b/common/src/main/java/digilib/io/FileOps.java Fri Mar 09 15:34:20 2018 +0100 @@ -44,10 +44,11 @@ { "jpeg", "image/jpeg" }, { "jp2", "image/jp2" }, { "png", "image/png" }, { "gif", "image/gif" }, { "tif", "image/tiff" }, { "tiff", "image/tiff" }, - { "fpx", "image/fpx" }, + { "fpx", "image/fpx" }, { "svg", "image/svg+xml" }, { "txt", "text/plain" }, { "html", "text/html" }, { "htm", "text/html" }, { "xml", "text/xml" }, - { "svg", "image/svg+xml" }, { "meta", "text/xml" } }; + { "meta", "text/xml" }, { "json", "application/json" } + }; public static Map fileTypes; @@ -98,8 +99,10 @@ if (mt == null) { return FileClass.NONE; } - if (mt.startsWith("image/svg")) { + if (mt.equals("image/svg")) { return FileClass.SVG; + } else if (mt.equals("application/json")) { + return FileClass.TEXT; } else if (mt.startsWith("image")) { return FileClass.IMAGE; } else if (mt.startsWith("text")) { diff -r f0daa76caba1 -r 395d56ba0112 text/src/main/java/digilib/conf/TextServletConfiguration.java --- a/text/src/main/java/digilib/conf/TextServletConfiguration.java Fri Mar 09 15:32:39 2018 +0100 +++ b/text/src/main/java/digilib/conf/TextServletConfiguration.java Fri Mar 09 15:34:20 2018 +0100 @@ -51,7 +51,7 @@ public static final String TEXT_DIR_CACHE_KEY = "text.servlet.dir.cache"; public static String getClassVersion() { - return "2.3.0 txt"; + return DigilibServletConfiguration.getClassVersion()+ " txt"; } /** non-static getVersion for Java inheritance */ @@ -66,6 +66,9 @@ */ public TextServletConfiguration() { super(); + // default text file subdirectory + newParameter("text-default-dir", null, null, 'f'); + // text cache instance newParameter(TEXT_DIR_CACHE_KEY, null, null, 's'); } diff -r f0daa76caba1 -r 395d56ba0112 text/src/main/java/digilib/servlet/Texter.java --- a/text/src/main/java/digilib/servlet/Texter.java Fri Mar 09 15:32:39 2018 +0100 +++ b/text/src/main/java/digilib/servlet/Texter.java Fri Mar 09 15:34:20 2018 +0100 @@ -81,6 +81,9 @@ /** use authentication */ protected boolean useAuthorization = false; + + /** default text directory */ + protected String defaultDir = "txt"; /* * (non-Javadoc) @@ -111,7 +114,9 @@ // DocuDirCache instance dirCache = (DocuDirCache) dlConfig.getValue(TextServletConfiguration.TEXT_DIR_CACHE_KEY); // configure ServletOps - ServletOps.setDlConfig(dlConfig); + ServletOps.setDlConfig(dlConfig); + // set default dir + defaultDir = dlConfig.getAsString("text-default-dir"); } /* @@ -153,11 +158,13 @@ /* * find the file to load/send */ - TextFile f = getTextFile(dlRequest, "/txt"); + // try default directory + TextFile f = getTextFile(dlRequest, defaultDir); if (f != null) { ServletOps.sendFile(f.getFile(), null, null, response, logger); } else { - f = getTextFile(dlRequest, ""); + // try without default directory + f = getTextFile(dlRequest, null); if (f != null) { ServletOps.sendFile(f.getFile(), null, null, response, logger); } else { @@ -190,9 +197,11 @@ * be found. * @return The wanted Textfile or null if there wasn't a file. */ - protected TextFile getTextFile(DigilibServletRequest dlRequest, String subDirectory) { - String loadPathName = dlRequest.getFilePath() + subDirectory; + String loadPathName = dlRequest.getFilePath(); + if (subDirectory != null) { + loadPathName = dlRequest.getFilePath() + "/" + subDirectory; + } // find the file(set) return (TextFile) dirCache.getFile(loadPathName, dlRequest.getAsInt("pn")); }