Mercurial > hg > digilib
changeset 1680:395d56ba0112
10: Allow Texter Servlet to Deliver Json Files
Task-Url: http://github.com/robcast/digilib/issues/10
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 09 Mar 2018 15:34:20 +0100 |
parents | f0daa76caba1 |
children | 6d5e04a54848 |
files | common/src/main/java/digilib/io/FileOps.java text/src/main/java/digilib/conf/TextServletConfiguration.java text/src/main/java/digilib/servlet/Texter.java |
diffstat | 3 files changed, 24 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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<String, String> 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")) {
--- 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'); }
--- 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")); }