# HG changeset patch # User robcast # Date 1133876191 -3600 # Node ID e03b4d7a7b46a6b120fb7239aaf1f70d82d047d6 # Parent 12e3dd21c4cd882bd10dda5face5f607ed1a9640 better version of SVG Raster servlet diff -r 12e3dd21c4cd -r e03b4d7a7b46 servlet/src/digilib/servlet/Raster.java --- a/servlet/src/digilib/servlet/Raster.java Tue Oct 25 20:39:48 2005 +0200 +++ b/servlet/src/digilib/servlet/Raster.java Tue Dec 06 14:36:31 2005 +0100 @@ -44,6 +44,8 @@ import digilib.auth.AuthOps; import digilib.io.DocuDirCache; +import digilib.io.DocuDirectory; +import digilib.io.DocuDirent; import digilib.io.FileOpException; import digilib.io.FileOps; import digilib.io.SVGFile; @@ -59,7 +61,7 @@ private static final long serialVersionUID = -7756999389932675241L; /** Servlet version */ - public static String servletVersion = "0.1b1"; + public static String servletVersion = "0.2b1"; /** DigilibConfiguration instance */ DigilibConfiguration dlConfig = null; /** general logger */ @@ -157,6 +159,39 @@ processRequest(request, response); } + /* + * (non-Javadoc) + * + * @see javax.servlet.http.HttpServlet#getLastModified(javax.servlet.http.HttpServletRequest) + */ + protected long getLastModified(HttpServletRequest request) { + logger.debug("GetLastModified from " + request.getRemoteAddr() + + " for " + request.getQueryString()); + long mtime = -1; + // create new request with defaults + DigilibRequest dlReq = new DigilibRequest(); + // set with request parameters + dlReq.setWithRequest(request); + // find the requested file + + // get PathInfo + String loadPathName = dlReq.getFilePath(); + // find the file(set) + SVGFile fileToLoad = + (SVGFile) dirCache.getFile( + loadPathName, + dlReq.getAsInt("pn"), + FileOps.CLASS_SVG); + if (fileToLoad != null) { + DocuDirectory dd = (DocuDirectory) fileToLoad.getParent(); + mtime = dd.getDirMTime() / 1000 * 1000; + } + return mtime; + } + + + + protected void processRequest( HttpServletRequest request, HttpServletResponse response) @@ -221,7 +256,8 @@ // get document width and height float imgWidth = svgroot.getWidth().getBaseVal().getValue(); float imgHeight = svgroot.getHeight().getBaseVal().getValue(); - + logger.debug("IMG: "+imgWidth+"x"+imgHeight); + /* * set up the transcoder */