Mercurial > hg > digilib
changeset 1395:4c72696fcc96
added config option iiif-slash-replacement (default "!"). Changed constructor of ParameterMap (move out initParams).
author | robcast |
---|---|
date | Sat, 26 Sep 2015 14:08:45 +0200 |
parents | e251b6068b68 |
children | 7a2de95a7b8e |
files | common/src/main/java/digilib/conf/DigilibConfiguration.java common/src/main/java/digilib/conf/DigilibRequest.java common/src/main/java/digilib/util/ParameterMap.java servlet/src/main/java/digilib/conf/DigilibServletRequest.java servlet2/src/main/java/digilib/servlet/Scaler.java servlet2/src/main/java/digilib/servlet/ScalerNoThread.java servlet3/src/main/java/digilib/servlet/Scaler.java |
diffstat | 7 files changed, 35 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/common/src/main/java/digilib/conf/DigilibConfiguration.java Thu Jun 04 18:21:08 2015 +0200 +++ b/common/src/main/java/digilib/conf/DigilibConfiguration.java Sat Sep 26 14:08:45 2015 +0200 @@ -57,7 +57,7 @@ /** digilib version */ public static String getClassVersion() { - return "2.3.0"; + return "2.3.1"; } /* non-static getVersion for Java inheritance */ @@ -94,6 +94,8 @@ newParameter("default-errmsg-type", "image", null, 'f'); // prefix for IIIF image API paths (used by DigilibRequest) newParameter("iiif-prefix", "IIIF", null, 'f'); + // character to use as slash-replacement in IIIF identifier part + newParameter("iiif-slash-replacement", "!", null, 'f'); } /**
--- a/common/src/main/java/digilib/conf/DigilibRequest.java Thu Jun 04 18:21:08 2015 +0200 +++ b/common/src/main/java/digilib/conf/DigilibRequest.java Sat Sep 26 14:08:45 2015 +0200 @@ -67,6 +67,9 @@ /** IIIF path prefix (taken from config) */ protected String iiifPrefix = "IIIF"; + /** IIIF slash replacement (taken from config) */ + protected String iiifSlashReplacement = null; + /** error message while configuring */ public String errorMessage = null; @@ -78,6 +81,7 @@ public DigilibRequest() { super(30); + initParams(); } /** @@ -86,8 +90,9 @@ * @param config */ public DigilibRequest(DigilibConfiguration config) { - super(); + super(30); this.config = config; + initParams(); } /** @@ -169,6 +174,7 @@ */ if (config != null) { iiifPrefix = config.getAsString("iiif-prefix"); + iiifSlashReplacement = config.getAsString("iiif-slash-replacement"); } } @@ -418,6 +424,10 @@ // still escape chars -- decode again identifier = URLDecoder.decode(identifier, "UTF-8"); } + if (iiifSlashReplacement != null && identifier.contains(iiifSlashReplacement)) { + // change replacement back to slash + identifier = identifier.replace(iiifSlashReplacement, "/"); + } setValueFromString("fn", identifier); } catch (UnsupportedEncodingException e) { errorMessage = "Error decoding identifier in IIIF path!";
--- a/common/src/main/java/digilib/util/ParameterMap.java Thu Jun 04 18:21:08 2015 +0200 +++ b/common/src/main/java/digilib/util/ParameterMap.java Sat Sep 26 14:08:45 2015 +0200 @@ -45,21 +45,20 @@ protected OptionsSet options; /** Default constructor. - * + * Does not call initParams(). */ public ParameterMap() { params = new HashMap<String, Parameter>(); options = new OptionsSet(); - initParams(); } /** Constructor with initial size. + * Does not call initParams(). * @param size */ public ParameterMap(int size) { params = new HashMap<String, Parameter>(size); options = new OptionsSet(); - initParams(); } /** Shallow copy constructor. @@ -69,6 +68,7 @@ @SuppressWarnings("unchecked") public static ParameterMap cloneInstance(ParameterMap pm) { ParameterMap newPm = new ParameterMap(); + // TODO: initParams? // clone params to this map newPm.params = (HashMap<String, Parameter>) pm.params.clone(); newPm.options = (OptionsSet) pm.options.clone(); @@ -82,6 +82,7 @@ */ public static ParameterMap getInstance(ParameterMap pm) { ParameterMap newPm = new ParameterMap(); + // TODO: initParams? // add all params to this map newPm.params.putAll(pm.params); newPm.initOptions();
--- a/servlet/src/main/java/digilib/conf/DigilibServletRequest.java Thu Jun 04 18:21:08 2015 +0200 +++ b/servlet/src/main/java/digilib/conf/DigilibServletRequest.java Sat Sep 26 14:08:45 2015 +0200 @@ -76,6 +76,7 @@ * @throws ImageOpException */ public DigilibServletRequest(HttpServletRequest request) { + super(); setWithRequest(request); initOptions(); } @@ -88,7 +89,7 @@ * @throws ImageOpException */ public DigilibServletRequest(HttpServletRequest request, DigilibConfiguration config) { - this.config = config; + super(config); setWithRequest(request); initOptions(); } @@ -99,6 +100,7 @@ */ @Override protected void initParams() { + // TODO: check if we can call super.initParams() /* * Definition of parameters and default values. Parameter of type 's' * are for the servlet. @@ -175,13 +177,14 @@ newParameter("img.pix_x", new Integer(0), null, 'c'); // hires image size y newParameter("img.pix_y", new Integer(0), null, 'c'); + /* - * TODO: check if we can remove these - * // total number of pages - * newParameter("pt", new Integer(0), null, 'c'); - * // marks - * newParameter("mk", "", null, 'c'); + * set local variables from config */ + if (config != null) { + iiifPrefix = config.getAsString("iiif-prefix"); + iiifSlashReplacement = config.getAsString("iiif-slash-replacement"); + } } /*
--- a/servlet2/src/main/java/digilib/servlet/Scaler.java Thu Jun 04 18:21:08 2015 +0200 +++ b/servlet2/src/main/java/digilib/servlet/Scaler.java Sat Sep 26 14:08:45 2015 +0200 @@ -61,7 +61,7 @@ private static final long serialVersionUID = -5439198888139362735L; /** digilib servlet version (for all components) */ - public static final String version = "2.3.0 noasync"; + public static final String version = "2.3.1 noasync"; /** servlet error codes */ public static enum Error { @@ -161,7 +161,7 @@ accountlog.debug("GetLastModified from " + request.getRemoteAddr() + " for " + request.getQueryString()); long mtime = -1; // create new request - DigilibServletRequest dlReq = new DigilibServletRequest(request); + DigilibServletRequest dlReq = new DigilibServletRequest(request, dlConfig); DocuDirectory dd = dirCache.getDirectory(dlReq.getFilePath()); if (dd != null) { mtime = dd.getDirMTime() / 1000 * 1000; @@ -223,7 +223,7 @@ long startTime = System.currentTimeMillis(); // parse request - DigilibServletRequest dlRequest = new DigilibServletRequest(request); + DigilibServletRequest dlRequest = new DigilibServletRequest(request, dlConfig); // extract the job information ImageJobDescription jobTicket = ImageJobDescription.getInstance(dlRequest, dlConfig);
--- a/servlet2/src/main/java/digilib/servlet/ScalerNoThread.java Thu Jun 04 18:21:08 2015 +0200 +++ b/servlet2/src/main/java/digilib/servlet/ScalerNoThread.java Sat Sep 26 14:08:45 2015 +0200 @@ -55,7 +55,7 @@ private static final long serialVersionUID = 1450947819851623306L; /** digilib servlet version (for all components) */ - public static final String version = "2.3.0 nothread"; + public static final String version = "2.3.1 nothread"; /** servlet error codes */ public static enum Error { @@ -144,7 +144,7 @@ accountlog.debug("GetLastModified from " + request.getRemoteAddr() + " for " + request.getQueryString()); long mtime = -1; // create new request - DigilibServletRequest dlReq = new DigilibServletRequest(request); + DigilibServletRequest dlReq = new DigilibServletRequest(request, dlConfig); DocuDirectory dd = dirCache.getDirectory(dlReq.getFilePath()); if (dd != null) { mtime = dd.getDirMTime() / 1000 * 1000; @@ -206,7 +206,7 @@ long startTime = System.currentTimeMillis(); // parse request - DigilibServletRequest dlRequest = new DigilibServletRequest(request); + DigilibServletRequest dlRequest = new DigilibServletRequest(request, dlConfig); // extract the job information ImageJobDescription jobTicket = ImageJobDescription.getInstance(dlRequest, dlConfig);
--- a/servlet3/src/main/java/digilib/servlet/Scaler.java Thu Jun 04 18:21:08 2015 +0200 +++ b/servlet3/src/main/java/digilib/servlet/Scaler.java Sat Sep 26 14:08:45 2015 +0200 @@ -166,7 +166,7 @@ long mtime = -1; try { // create new digilib request - DigilibServletRequest dlReq = new DigilibServletRequest(request); + DigilibServletRequest dlReq = new DigilibServletRequest(request, dlConfig); DocuDirectory dd = dirCache.getDirectory(dlReq.getFilePath()); if (dd != null) { mtime = dd.getDirMTime() / 1000 * 1000; @@ -234,7 +234,7 @@ final long startTime = System.currentTimeMillis(); // parse request - DigilibServletRequest dlRequest = new DigilibServletRequest(request); + DigilibServletRequest dlRequest = new DigilibServletRequest(request, dlConfig); // extract the job information final ImageJobDescription jobTicket = ImageJobDescription.getInstance(dlRequest, dlConfig);