# HG changeset patch # User robcast # Date 1293046361 -3600 # Node ID 3e3e1b7d659fad6e13605cd8d1dc52c63deb2d60 # Parent dad720e9b12b781c57d32b218f01bb62b1be03bb# Parent 5d80f333828a2305ea0cee84f70ad42b3847249b Merge from HEAD 5d80f333828a2305ea0cee84f70ad42b3847249b diff -r dad720e9b12b -r 3e3e1b7d659f client/.classpath --- a/client/.classpath Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff -r dad720e9b12b -r 3e3e1b7d659f client/.project --- a/client/.project Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ - - - digilib-client - - - digilib-servlet - digilib-client - - - - org.eclipse.wst.jsdt.core.javascriptValidator - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.wst.validation.validationbuilder - - - - - - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.wst.common.project.facet.core.nature - org.eclipse.jdt.core.javanature - org.eclipse.wst.jsdt.core.jsNature - - diff -r dad720e9b12b -r 3e3e1b7d659f client/.settings/org.eclipse.jdt.core.prefs --- a/client/.settings/org.eclipse.jdt.core.prefs Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#Fri Oct 08 14:51:02 CEST 2010 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.5 diff -r dad720e9b12b -r 3e3e1b7d659f client/.settings/org.eclipse.wst.common.component --- a/client/.settings/org.eclipse.wst.common.component Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ - - - - - - uses - - - consumes - - - - - diff -r dad720e9b12b -r 3e3e1b7d659f client/.settings/org.eclipse.wst.common.project.facet.core.xml --- a/client/.settings/org.eclipse.wst.common.project.facet.core.xml Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ - - - - - - - - - - diff -r dad720e9b12b -r 3e3e1b7d659f client/.settings/org.eclipse.wst.jsdt.ui.superType.container --- a/client/.settings/org.eclipse.wst.jsdt.ui.superType.container Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff -r dad720e9b12b -r 3e3e1b7d659f client/.settings/org.eclipse.wst.jsdt.ui.superType.name --- a/client/.settings/org.eclipse.wst.jsdt.ui.superType.name Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Window \ No newline at end of file diff -r dad720e9b12b -r 3e3e1b7d659f client/.settings/org.eclipse.wst.ws.service.policy.prefs --- a/client/.settings/org.eclipse.wst.ws.service.policy.prefs Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -#Fri Oct 08 14:56:13 CEST 2010 -eclipse.preferences.version=1 -org.eclipse.wst.ws.service.policy.projectEnabled=false diff -r dad720e9b12b -r 3e3e1b7d659f client/digitallibrary/WEB-INF/classes/Relato.class Binary file client/digitallibrary/WEB-INF/classes/Relato.class has changed diff -r dad720e9b12b -r 3e3e1b7d659f client/digitallibrary/dirInfo-xml.jsp --- a/client/digitallibrary/dirInfo-xml.jsp Wed Dec 22 20:19:06 2010 +0100 +++ b/client/digitallibrary/dirInfo-xml.jsp Wed Dec 22 20:32:41 2010 +0100 @@ -1,3 +1,4 @@ +<%@page import="digilib.io.FileOps"%> <%@ page language="java" %><%! // create DocumentBean instance for all JSP requests digilib.servlet.DocumentBean docBean = new digilib.servlet.DocumentBean(); @@ -22,17 +23,19 @@ digilib.io.DocuDirCache dirCache = (digilib.io.DocuDirCache) dlConfig.getValue("servlet.dir.cache"); // get directory digilib.io.DocuDirectory dir = dirCache.getDirectory(dlRequest.getFilePath()); +FileOps.FileClass fc = FileOps.FileClass.IMAGE; +int dirSize = dir.size(); %> + <% if (dir != null) { %> - <%= dir.size() %> + <%= dirSize %> <%= dir.getDirName() %> <%= dir.getDir().getPath() %> <% if (!dlRequest.hasOption("mo", "dir")) { - int l = dir.size(); - for (int i = 0; i < l; i++) { - digilib.io.DocuDirent f = dir.get(i); + for (int i = 0; i < dirSize; i++) { + digilib.io.DocuDirent f = dir.get(i, fc); String fn = (f != null) ? f.getName() : "null"; %> <%= i+1 %> diff -r dad720e9b12b -r 3e3e1b7d659f servlet/.classpath --- a/servlet/.classpath Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r dad720e9b12b -r 3e3e1b7d659f servlet/.project --- a/servlet/.project Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ - - - digilib-servlet - - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.validation.validationbuilder - - - - - - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.jdt.core.javanature - org.eclipse.wst.common.project.facet.core.nature - - diff -r dad720e9b12b -r 3e3e1b7d659f servlet/.settings/org.eclipse.jdt.core.prefs --- a/servlet/.settings/org.eclipse.jdt.core.prefs Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#Tue Oct 12 18:02:03 CEST 2010 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 diff -r dad720e9b12b -r 3e3e1b7d659f servlet/.settings/org.eclipse.wst.common.component --- a/servlet/.settings/org.eclipse.wst.common.component Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ - - - - - - diff -r dad720e9b12b -r 3e3e1b7d659f servlet/.settings/org.eclipse.wst.common.project.facet.core.xml --- a/servlet/.settings/org.eclipse.wst.common.project.facet.core.xml Wed Dec 22 20:19:06 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -r dad720e9b12b -r 3e3e1b7d659f servlet/src/digilib/io/DocuDirectory.java diff -r dad720e9b12b -r 3e3e1b7d659f servlet/src/digilib/servlet/PDFCache.java --- a/servlet/src/digilib/servlet/PDFCache.java Wed Dec 22 20:19:06 2010 +0100 +++ b/servlet/src/digilib/servlet/PDFCache.java Wed Dec 22 20:32:41 2010 +0100 @@ -182,7 +182,7 @@ } else if (status == PDFStatus.DONE) { // pdf created -- send it try { - ServletOps.sendFile(getCacheFile(docid), "application/pdf", getDownloadFilename(pdfji), response); + ServletOps.sendFile(getCacheFile(docid), "application/pdf", getDownloadFilename(pdfji), response, logger); //sendFile(docid, getDownloadFilename(pdfji), response); } catch (Exception e) { // sending didn't work diff -r dad720e9b12b -r 3e3e1b7d659f servlet/src/digilib/servlet/Scaler.java --- a/servlet/src/digilib/servlet/Scaler.java Wed Dec 22 20:19:06 2010 +0100 +++ b/servlet/src/digilib/servlet/Scaler.java Wed Dec 22 20:32:41 2010 +0100 @@ -44,7 +44,7 @@ protected static Logger accountlog = Logger.getLogger("account.request"); /** gengeral logger for this class */ - protected static Logger logger = Logger.getLogger("digilib.servlet"); + protected static Logger logger = Logger.getLogger("digilib.scaler"); /** logger for authentication related */ protected static Logger authlog = Logger.getLogger("digilib.auth"); @@ -220,7 +220,7 @@ mt = "application/octet-stream"; } logger.debug("Sending RAW File as is."); - ServletOps.sendFile(fileToLoad.getFile(), mt, null, response); + ServletOps.sendFile(fileToLoad.getFile(), mt, null, response, logger); logger.info("Done in " + (System.currentTimeMillis() - startTime) + "ms"); return; } @@ -228,7 +228,7 @@ // if possible, send the image without actually having to transform it if (! jobTicket.isTransformRequired()) { logger.debug("Sending File as is."); - ServletOps.sendFile(fileToLoad.getFile(), null, null, response); + ServletOps.sendFile(fileToLoad.getFile(), null, null, response, logger); logger.info("Done in " + (System.currentTimeMillis() - startTime) + "ms"); return; } @@ -246,7 +246,7 @@ // wait for result DocuImage img = jobResult.get(); // send image - ServletOps.sendImage(img, null, response); + ServletOps.sendImage(img, null, response, logger); logger.debug("Job Processing Time: " + (System.currentTimeMillis() - startTime) + "ms"); @@ -308,7 +308,7 @@ response.sendError(status, msg); } else if (img != null) { // default: image - ServletOps.sendFile(img, null, null, response); + ServletOps.sendFile(img, null, null, response, logger); } } catch (Exception e) { logger.error("Error sending error!", e); diff -r dad720e9b12b -r 3e3e1b7d659f servlet/src/digilib/servlet/ServletOps.java --- a/servlet/src/digilib/servlet/ServletOps.java Wed Dec 22 20:19:06 2010 +0100 +++ b/servlet/src/digilib/servlet/ServletOps.java Wed Dec 22 20:32:41 2010 +0100 @@ -23,7 +23,6 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; @@ -37,7 +36,6 @@ import digilib.image.DocuImage; import digilib.image.ImageOpException; -import digilib.io.FileOpException; import digilib.io.FileOps; public class ServletOps { @@ -182,6 +180,32 @@ * The local file is copied to the OutputStream of the * ServletResponse. If mt is null then the mime-type is * auto-detected with mimeForFile. + * + * @param f + * Image file to be sent. + * @param mt + * mime-type of the file. + * @param name + * name of the download file (for application/x) + * @param res + * ServletResponse where the image file will be sent. + * @throws ImageOpException + * @throws ServletException + * Exception on sending data. + */ + public static void sendFile(File f, String mt, String name, + HttpServletResponse response) throws ImageOpException, + ServletException { + // use default logger + ServletOps.sendFile(f, mt, name, response, ServletOps.logger); + } + + /** + * Transfers an image file as-is with the mime type mt. + * + * The local file is copied to the OutputStream of the + * ServletResponse. If mt is null then the mime-type is + * auto-detected with mimeForFile. * @param f * Image file to be sent. * @param mt @@ -190,10 +214,12 @@ * name of the download file (for application/x) * @param res * ServletResponse where the image file will be sent. + * @param logger + * Logger to use * @throws ImageOpException * @throws ServletException Exception on sending data. */ - public static void sendFile(File f, String mt, String name, HttpServletResponse response) + public static void sendFile(File f, String mt, String name, HttpServletResponse response, Logger logger) throws ImageOpException, ServletException { logger.debug("sendRawFile(" + mt + ", " + f + ")"); if (mt == null) { @@ -243,6 +269,22 @@ public static void sendImage(DocuImage img, String mimeType, HttpServletResponse response) throws ImageOpException, ServletException { + ServletOps.sendImage(img, mimeType, response, ServletOps.logger); + } + + /** + * Write image img to ServletResponse response. + * + * @param img + * @param mimeType + * @param response + * @param logger + * @throws ImageOpException + * @throws ServletException Exception on sending data. + */ + public static void sendImage(DocuImage img, String mimeType, + HttpServletResponse response, Logger logger) throws ImageOpException, + ServletException { try { OutputStream outstream = response.getOutputStream(); // setup output -- if mime type is set use that otherwise diff -r dad720e9b12b -r 3e3e1b7d659f servlet/src/digilib/servlet/Texter.java --- a/servlet/src/digilib/servlet/Texter.java Wed Dec 22 20:19:06 2010 +0100 +++ b/servlet/src/digilib/servlet/Texter.java Wed Dec 22 20:32:41 2010 +0100 @@ -44,8 +44,6 @@ */ public class Texter extends HttpServlet { - private static final long serialVersionUID = -8539178734033662322L; - /** Servlet version */ public static String tlVersion = "0.1b2"; @@ -55,6 +53,9 @@ /** general logger */ Logger logger = Logger.getLogger("digilib.texter"); + /** logger for accounting requests */ + protected static Logger accountlog = Logger.getLogger("account.texter.request"); + /** FileOps instance */ FileOps fileOp; @@ -109,6 +110,7 @@ */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + accountlog.info("GET from " + request.getRemoteAddr()); // do the processing processRequest(request, response); } @@ -121,6 +123,7 @@ */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + accountlog.info("POST from " + request.getRemoteAddr()); // do the processing processRequest(request, response); } @@ -140,11 +143,11 @@ */ TextFile f = getTextFile(dlRequest, "/txt"); if (f != null) { - ServletOps.sendFile(f.getInput(), null, null, response); + ServletOps.sendFile(f.getInput(), null, null, response, logger); } else { f = getTextFile(dlRequest, ""); if (f != null) { - ServletOps.sendFile(f.getInput(), null, null, response); + ServletOps.sendFile(f.getInput(), null, null, response, logger); } else { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Text-File not found!"); //ServletOps.htmlMessage("No Text-File!", response); @@ -152,13 +155,11 @@ } } catch (ImageOpException e) { - logger.error("ERROR: File IO Error: ", e); - try { - ServletOps.htmlMessage("ERROR: File IO Error: " + e, response); - } catch (FileOpException ex) { - } // so we don't get a loop - } - } + // most likely wrong file format... + logger.error("ERROR sending text file: ", e); + response.sendError(HttpServletResponse.SC_BAD_REQUEST); + } + } /**