org.fcrepo.server.access
Class FedoraAccessServlet

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.SpringAccessServlet
                  extended by org.fcrepo.server.access.FedoraAccessServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, Constants

public class FedoraAccessServlet
extends SpringAccessServlet
implements Constants

Implements the three methods GetObjectProfile, GetDissemination, and GetDatastreamDissemination of the Fedora Access LITE (API-A-LITE) interface using a java servlet front end. The syntax defined by API-A-LITE defines three bindings for these methods:

  1. GetDissemination URL syntax:

    protocol://hostname:port/fedora/get/PID/sDefPID/methodName[/dateTime][? parmArray]

    This syntax requests a dissemination of the specified object using the specified method of the associated service definition object. The result is returned as a MIME-typed stream.

  2. GetObjectProfile URL syntax:

    protocol://hostname:port/fedora/get/PID[/dateTime][?xml=BOOLEAN]

    This syntax requests an object profile for the specified digital object. The xml parameter determines the type of output returned. If the parameter is omitted or has a value of "false", a MIME-typed stream consisting of an html table is returned providing a browser-savvy means of viewing the object profile. If the value specified is "true", then a MIME-typed stream consisting of XML is returned.

  3. GetDatastreamDissemination URL syntax:

    protocol://hostname:port/fedora/get/PID/DSID[/dateTime]

    This syntax requests a datastream dissemination for the specified digital object. It is used to return the contents of a datastream.

Author:
Ross Wayland
See Also:
Serialized Form

Nested Class Summary
 class FedoraAccessServlet.ProfileSerializerThread
           A Thread to serialize an ObjectProfile object into XML.
 
Nested classes/interfaces inherited from interface org.fcrepo.common.Constants
Constants.FedoraHome
 
Field Summary
 
Fields inherited from class org.fcrepo.server.access.SpringAccessServlet
m_access
 
Fields inherited from class org.fcrepo.server.SpringServlet
m_appContext, m_server, m_status
 
Fields inherited from interface org.fcrepo.common.Constants
ACCESS, ACTION, API, ATOM_APIM1_0, ATOM_ZIP1_1, ATOM1_1, AUDIT, AUDIT1_0, BATCH_MODIFY, BATCH_MODIFY1_1, BE_SECURITY, BE_SECURITY1_0, BINDING_SPEC, DATASTREAM, DC, DISSEMINATOR, DS_COMPOSITE_MODEL, DS_COMPOSITE_MODEL1_0, DS_INPUT_SPEC1_0, DS_INPUT_SPEC1_1, ENVIRONMENT, FCFG, FEDORA, FEDORA_APP_CONTEXT_NAME, FEDORA_DEFAULT_APP_CONTEXT, FEDORA_HOME, FEDORA_REPOSITORY_PID, FOXML, FOXML1_0, FOXML1_0_LEGACY, FOXML1_1, HTTP_REQUEST, MANAGEMENT, METHOD_MAP, METS, METS_EXT, METS_EXT1_0, METS_EXT1_0_LEGACY, METS_EXT1_1, MODEL, MULGARA, OAI_DC, OAI_DC2_0, OAI_FRIENDS, OAI_FRIENDS2_0, OAI_IDENTIFIER, OAI_IDENTIFIER2_0, OAI_PMH, OAI_PMH2_0, OAI_PROV, OAI_PROV2_0, OBJ_DATASTREAMS1_0, OBJ_HISTORY1_0, OBJ_ITEMS1_0, OBJ_METHODS1_0, OBJ_PROFILE1_0, OBJ_VALIDATION1_0, OBJECT, OLD_XLINK, PID_LIST1_0, RDF, RDF_XSD, RECOVERY, RELS_EXT, RELS_EXT1_0, RELS_INT1_0, REPO_DESC1_0, RESOURCE, SDEF, SDEF_METHOD_MAP1_0, SDEP, SDEP_METHOD_MAP1_0, SDEP_METHOD_MAP1_1, SERVICE_PROFILE, SOAP, SOAP_ENC, SUBJECT, TYPES, VIEW, WSDL, WSDL_HTTP, WSDL_MIME, XACML_POLICY, XACML_POLICY1_0, XACML1, XACML1_ACTION, XACML1_POLICY, XACML1_RESOURCE, XACML1_SUBJECT, XACML2_POLICY_SCHEMA, XLINK, XML_XSD, XMLNS, XSI
 
Constructor Summary
FedoraAccessServlet()
           
 
Method Summary
 void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           Process Fedora Access Request.
 void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           For now, treat a HTTP POST request just like a GET request.
 void getDatastreamDissemination(Context context, String PID, String dsID, Date asOfDateTime, javax.servlet.http.HttpServletResponse response, javax.servlet.http.HttpServletRequest request)
           
 void getDissemination(Context context, String PID, String sDefPID, String methodName, Property[] userParms, Date asOfDateTime, javax.servlet.http.HttpServletResponse response, javax.servlet.http.HttpServletRequest request)
           This method calls the Fedora Access Subsystem to retrieve a MIME-typed stream corresponding to the dissemination request.
 void getObjectProfile(Context context, String PID, Date asOfDateTime, boolean xml, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
           
 
Methods inherited from class org.fcrepo.server.access.SpringAccessServlet
destroy, init
 
Methods inherited from class org.fcrepo.server.SpringServlet
failStartup
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, 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
 

Constructor Detail

FedoraAccessServlet

public FedoraAccessServlet()
Method Detail

doGet

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

Process Fedora Access Request. Parse and validate the servlet input parameters and then execute the specified request.

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.

getObjectProfile

public void getObjectProfile(Context context,
                             String PID,
                             Date asOfDateTime,
                             boolean xml,
                             javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)
                      throws ServerException
Throws:
ServerException

getDatastreamDissemination

public void getDatastreamDissemination(Context context,
                                       String PID,
                                       String dsID,
                                       Date asOfDateTime,
                                       javax.servlet.http.HttpServletResponse response,
                                       javax.servlet.http.HttpServletRequest request)
                                throws IOException,
                                       ServerException
Throws:
IOException
ServerException

getDissemination

public void getDissemination(Context context,
                             String PID,
                             String sDefPID,
                             String methodName,
                             Property[] userParms,
                             Date asOfDateTime,
                             javax.servlet.http.HttpServletResponse response,
                             javax.servlet.http.HttpServletRequest request)
                      throws IOException,
                             ServerException

This method calls the Fedora Access Subsystem to retrieve a MIME-typed stream corresponding to the dissemination request.

Parameters:
context - The read only context of the request.
PID - The persistent identifier of the Digital Object.
sDefPID - The persistent identifier of the Service Definition object.
methodName - The method name.
userParms - An array of user-supplied method parameters.
asOfDateTime - The version datetime stamp of the digital object.
response - The servlet response.
request - The servlet request.
Throws:
IOException - If an error occurrs with an input or output operation.
ServerException - If an error occurs in the Access Subsystem.

doPost

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

For now, treat a HTTP POST request just like a GET request.

Overrides:
doPost in class javax.servlet.http.HttpServlet
Parameters:
request - The servet request.
response - The servlet response.
Throws:
javax.servlet.ServletException - If thrown by doGet.
IOException - If thrown by doGet.


Copyright © 2012 DuraSpace. All Rights Reserved.