org.fcrepo.server.access.dissemination
Class DatastreamResolverServlet

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

public class DatastreamResolverServlet
extends SpringServlet

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 respond is set by the Fedora configuration parameter named datastreamMediationLimit and is specified in milliseconds. If this parameter is not supplied it defaults to 5000 milliseconds.

Author:
Ross Wayland
See Also:
Serialized Form

Field Summary
static String ACTION_LABEL
           
 
Fields inherited from class org.fcrepo.server.SpringServlet
m_appContext, m_server, m_status
 
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(javax.servlet.ServletConfig config)
          Initialize servlet.
 
Methods inherited from class org.fcrepo.server.SpringServlet
failStartup
 
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 String ACTION_LABEL
See Also:
Constant Field Values
Constructor Detail

DatastreamResolverServlet

public DatastreamResolverServlet()
Method Detail

init

public void init(javax.servlet.ServletConfig config)
          throws javax.servlet.ServletException
Initialize servlet.

Specified by:
init in interface javax.servlet.Servlet
Overrides:
init in class SpringServlet
Throws:
javax.servlet.ServletException - If the servlet cannot be initialized.

doGet

public void doGet(javax.servlet.http.HttpServletRequest request,
                  javax.servlet.http.HttpServletResponse response)
           throws javax.servlet.ServletException,
                  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.
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 SpringServlet


Copyright © 2012 DuraSpace. All Rights Reserved.