From: Michael S. <sta...@us...> - 2005-10-19 23:59:32
|
Update of /cvsroot/archive-access/archive-access/projects/wera/src/java/no/nb/nwa/retriever In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2257/src/java/no/nb/nwa/retriever Modified Files: AID.java ARCRetriever.java Log Message: Implementation of '[ 1246834 ] Move arc path to retreiver (WAS Path...lib/seal/nutch.inc)' * project.xml Up the version number to be 0.4.0. * src/java/no/nb/nwa/retriever/AID.java Formatting. Make it so it adds '.arc.gz' if not present on passed arc file. * src/java/no/nb/nwa/retriever/ARCRetriever.java Read arcdir from servlet init-parameters. Formatting. * src/webapps/arcretriever/index.jsp Updated desription of this webapp. * src/webapps/arcretriever/WEB-INF/web.xml Added init-param arcdir. * src/webapps/wera/lib/config.inc * src/webapps/wera/lib/config.inc.template Moved arc dir out to arcretriever. Index: AID.java =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wera/src/java/no/nb/nwa/retriever/AID.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AID.java 5 Oct 2005 18:15:54 -0000 1.1 --- AID.java 19 Oct 2005 23:59:22 -0000 1.2 *************** *** 49,66 **** this.offset = Long.parseLong(aid.substring(0, filenameOffset)); } catch (StringIndexOutOfBoundsException e) { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_UNABLE_TO_PARSE_ARCHIVE_IDENTIFIER); } catch (Exception e) { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_UNABLE_TO_PARSE_ARCHIVE_IDENTIFIER, ! e); } } /** ! * @return Returns the filename. */ public String getFilename() { ! return filename; } --- 49,67 ---- this.offset = Long.parseLong(aid.substring(0, filenameOffset)); } catch (StringIndexOutOfBoundsException e) { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_UNABLE_TO_PARSE_ARCHIVE_IDENTIFIER); } catch (Exception e) { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_UNABLE_TO_PARSE_ARCHIVE_IDENTIFIER, e); } } /** ! * @return Returns the filename (If no suffix, appends arc.gz). */ public String getFilename() { ! return filename.endsWith(".arc.gz")? this.filename: ! filename.endsWith(".arc")? this.filename: ! this.filename + ".arc.gz"; } Index: ARCRetriever.java =================================================================== RCS file: /cvsroot/archive-access/archive-access/projects/wera/src/java/no/nb/nwa/retriever/ARCRetriever.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ARCRetriever.java 5 Oct 2005 18:15:54 -0000 1.1 --- ARCRetriever.java 19 Oct 2005 23:59:22 -0000 1.2 *************** *** 37,42 **** --- 37,45 ---- import java.util.regex.Matcher; import java.util.regex.Pattern; + import java.util.logging.Logger; + import java.util.logging.Level; import javax.servlet.ServletException; + import javax.servlet.ServletConfig; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; *************** *** 70,124 **** */ public class ARCRetriever extends HttpServlet { final static Pattern charsetPattern = Pattern .compile("^.*charset=([^\\s]+).*$"); /** ! * */ public ARCRetriever() { } protected void doGet(HttpServletRequest request, ! HttpServletResponse response) throws ServletException, IOException { try { long now = System.currentTimeMillis(); String reqtype = request.getParameter("reqtype"); String aid = request.getParameter("aid"); - if (reqtype == null) { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_REQTYPE_MISSING); } else { reqtype = reqtype.intern(); } - ARCRetriever retriever = new ARCRetriever(); if (reqtype == "getfile") { if (aid == null) { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_ARCHIVE_IDENTIFIER_MISSING); } else { ! retriever.getDocument(response, new AID(aid)); } } else if (reqtype == "getmeta") { if (aid == null) { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_ARCHIVE_IDENTIFIER_MISSING); } else { ! retriever.getMeta(response, new AID(aid)); } } else if (reqtype == "getfilestatus") { if (aid == null) { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_ARCHIVE_IDENTIFIER_MISSING); } else { ! retriever.getFileStatus(response, new AID(aid)); } } else if (reqtype == "getarchiveinfo") { ! retriever.getArchiveInfo(response); } else { ! throw new ArcRetrieverException( ! ArcRetrieverException.ERROR_UNSUPPORTED_REQTYPE); } } catch (Throwable e) { --- 73,149 ---- */ public class ARCRetriever extends HttpServlet { + final static Logger LOGGER = Logger.getLogger(ARCRetriever.class.getName()); final static Pattern charsetPattern = Pattern .compile("^.*charset=([^\\s]+).*$"); + + private File arcdir = null; /** ! * Constructor. */ public ARCRetriever() { + super(); + } + + public void init(final ServletConfig config) throws ServletException { + String tmp = config.getInitParameter("arcdir"); + if (tmp != null) { + this.arcdir = new File(tmp); + } else { + throw new ServletException("'arcdir' init param is empty. " + + "Have you set it in web.xml to point at directory of arcs?"); + + } + if (!this.arcdir.exists() || !this.arcdir.canRead()) { + throw new ServletException(this.arcdir.getAbsolutePath() + + " does not exist or is not readable. Have you set " + + "'arcdir' in the web.xml file to point at directory of arcs?"); + } + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("Passed arc directory is " + this.arcdir); + } } protected void doGet(HttpServletRequest request, ! HttpServletResponse response) ! throws ServletException, IOException { try { long now = System.currentTimeMillis(); String reqtype = request.getParameter("reqtype"); String aid = request.getParameter("aid"); if (reqtype == null) { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_REQTYPE_MISSING); } else { reqtype = reqtype.intern(); } if (reqtype == "getfile") { if (aid == null) { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_ARCHIVE_IDENTIFIER_MISSING); } else { ! getDocument(response, new AID(aid)); } } else if (reqtype == "getmeta") { if (aid == null) { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_ARCHIVE_IDENTIFIER_MISSING); } else { ! getMeta(response, new AID(aid)); } } else if (reqtype == "getfilestatus") { if (aid == null) { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_ARCHIVE_IDENTIFIER_MISSING); } else { ! getFileStatus(response, new AID(aid)); } } else if (reqtype == "getarchiveinfo") { ! getArchiveInfo(response); } else { ! throw new ArcRetrieverException(ArcRetrieverException. ! ERROR_UNSUPPORTED_REQTYPE); } } catch (Throwable e) { *************** *** 128,132 **** protected void doPost(HttpServletRequest request, ! HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } --- 153,158 ---- protected void doPost(HttpServletRequest request, ! HttpServletResponse response) ! throws ServletException, IOException { this.doGet(request, response); } *************** *** 364,368 **** ARCRecord rec = null; ARCReader arc = null; ! File file = new File(aid.getFilename()); arc = ARCReaderFactory.get(file); rec = arc.get(aid.getOffset()); --- 390,394 ---- ARCRecord rec = null; ARCReader arc = null; ! File file = new File(this.arcdir, aid.getFilename()); arc = ARCReaderFactory.get(file); rec = arc.get(aid.getOffset()); |