fedora.server.access.dissemination
Class DatastreamResolverServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by fedora.server.access.dissemination.DatastreamResolverServlet
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class DatastreamResolverServlet
extends javax.servlet.http.HttpServlet

Title: DatastreamResolverServlet.java

Description: This servlet acts as a proxy to resolve the physical location of datastreams. It requires a single parameter named id that denotes the temporary id of the requested datastresm. This id is in the form of a DateTime stamp. The servlet will perform an in-memory hashtable lookup using the temporary id to obtain the actual physical location of the datastream and then return the contents of the datastream as a MIME-typed stream. This servlet is invoked primarily by external mechanisms needing to retrieve the contents of a datastream.

The servlet also requires that an external mechanism request a datastream within a finite time interval of the tempID's creation. This is to lessen the risk of unauthorized access. The time interval within which a mechanism must repond is set by the Fedora configuration parameter named datastreamMediationLimit and is speci207fied in milliseconds. If this parameter is not supplied it defaults to 5000 miliseconds.

Version:
$Id: DatastreamResolverServlet.java,v 1.50 2006/09/29 20:29:12 wdn5e Exp $
Author:
rlw@virginia.edu
See Also:
Serialized Form

Field Summary
static java.lang.String ACTION_LABEL
           
 
Constructor Summary
DatastreamResolverServlet()
           
 
Method Summary
 void destroy()
           
 void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           Processes the servlet request and resolves the physical location of the specified datastream.
 void init()
           Initialize servlet.
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACTION_LABEL

public static final java.lang.String ACTION_LABEL
See Also:
Constant Field Values
Constructor Detail

DatastreamResolverServlet

public DatastreamResolverServlet()
Method Detail

init

public void init()
          throws javax.servlet.ServletException

Initialize servlet.

Overrides:
init in class javax.servlet.GenericServlet
Throws:
javax.servlet.ServletException - If the servet cannot be initialized.

doGet

public void doGet(javax.servlet.http.HttpServletRequest request,
                  javax.servlet.http.HttpServletResponse response)
           throws javax.servlet.ServletException,
                  java.io.IOException

Processes the servlet request and resolves the physical location of the specified datastream.

Overrides:
doGet in class javax.servlet.http.HttpServlet
Parameters:
request - The servlet request.
response - servlet The servlet response.
Throws:
javax.servlet.ServletException - If an error occurs that effects the servlet's basic operation.
java.io.IOException - If an error occurrs with an input or output operation.

destroy

public void destroy()
Specified by:
destroy in interface javax.servlet.Servlet
Overrides:
destroy in class javax.servlet.GenericServlet