Class MNResourceHandler

java.lang.Object
edu.ucsb.nceas.metacat.restservice.D1ResourceHandler
edu.ucsb.nceas.metacat.restservice.v2.MNResourceHandler

public class MNResourceHandler extends D1ResourceHandler
MN REST service implementation handler ****************** MNCore ping() - GET /d1/mn/monitor/ping log() - GET /d1/mn/log **getObjectStatistics() - GET /d1/mn/monitor/object getOperationsStatistics - GET /d1/mn/monitor/event **getStatus - GET /d1/mn/monitor/status getCapabilities() - GET /d1/mn/ and /d1/mn/node MNRead get() - GET /d1/mn/object/PID getSystemMetadata() - GET /d1/mn/meta/PID describe() - HEAD /d1/mn/object/PID getChecksum() - GET /d1/mn/checksum/PID listObjects() - GET /d1/mn/object synchronizationFailed() - POST /d1/mn/error MNAuthorization isAuthorized() - GET /d1/mn/isAuthorized/PID setAccessPolicy() - PUT /d1/mn/accessRules/PID MNStorage create() - POST /d1/mn/object/PID update() - PUT /d1/mn/object/PID delete() - DELETE /d1/mn/object/PID archive() - PUT /d1/mn/archive/PID updateSystemMetadata() - PUT /d1/mn/meta systemMetadataChanged() - POST /dirtySystemMetadata/PID MNReplication replicate() - POST /d1/mn/replicate getReplica() - GET /d1/mn/replica MNAdmin reindex() - PUT /d1/mn/index updateIdMetadata() - PUT /d1/mn/identifiers ******************
Author:
leinfelder
  • Field Details

  • Constructor Details

    • MNResourceHandler

      public MNResourceHandler(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Initializes new instance by setting servlet context,request and response
      Parameters:
      request - the request that the handler will handle
      response - the response that the handler will send back
  • Method Details

    • isD1Enabled

      protected boolean isD1Enabled()
      Description copied from class: D1ResourceHandler
      subclasses should provide a more useful implementation
      Overrides:
      isD1Enabled in class D1ResourceHandler
      Returns:
    • handle

      public void handle(byte httpVerb)
      This function is called from REST API servlet and handles each request to the servlet
      Overrides:
      handle in class D1ResourceHandler
      Parameters:
      httpVerb - (GET, POST, PUT or DELETE)
    • getObject

      protected void getObject(String pid) throws org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, InterruptedException, org.dataone.service.exceptions.NotFound, org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.NotImplemented, IOException, org.dataone.exceptions.MarshallingException
      Implements REST version of DataONE CRUD API --> get
      Parameters:
      pid - ID of data object to be read
      Throws:
      org.dataone.service.exceptions.NotImplemented
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.NotFound
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.InvalidToken
      IOException
      org.dataone.exceptions.MarshallingException
      InterruptedException
    • getPackage

      protected void getPackage(String format, String pid) throws org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotFound, org.dataone.service.exceptions.NotImplemented, IOException, org.dataone.service.exceptions.InvalidRequest
      Retrieve data package as Bagit zip
      Parameters:
      pid -
      Throws:
      org.dataone.service.exceptions.NotImplemented
      org.dataone.service.exceptions.NotFound
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.InvalidToken
      IOException
      org.dataone.service.exceptions.InvalidRequest
    • publish

      protected void publish(String pid) throws org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotFound, org.dataone.service.exceptions.NotImplemented, IOException, org.dataone.exceptions.MarshallingException, org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.IdentifierNotUnique, org.dataone.service.exceptions.UnsupportedType, org.dataone.service.exceptions.InsufficientResources, org.dataone.service.exceptions.InvalidSystemMetadata
      Throws:
      org.dataone.service.exceptions.InvalidToken
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.NotFound
      org.dataone.service.exceptions.NotImplemented
      IOException
      org.dataone.exceptions.MarshallingException
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.IdentifierNotUnique
      org.dataone.service.exceptions.UnsupportedType
      org.dataone.service.exceptions.InsufficientResources
      org.dataone.service.exceptions.InvalidSystemMetadata
    • publishIdentifier

      protected void publishIdentifier(String identifier) throws org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotImplemented, org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.NotFound, org.dataone.service.exceptions.IdentifierNotUnique, org.dataone.service.exceptions.UnsupportedType, org.dataone.service.exceptions.InsufficientResources, org.dataone.service.exceptions.InvalidSystemMetadata, DOIException, IOException, org.dataone.exceptions.MarshallingException
      Make the status of the identifier public
      Parameters:
      identifier -
      Throws:
      org.dataone.service.exceptions.InvalidToken
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.NotImplemented
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.NotFound
      org.dataone.service.exceptions.IdentifierNotUnique
      org.dataone.service.exceptions.UnsupportedType
      org.dataone.service.exceptions.InsufficientResources
      org.dataone.service.exceptions.InvalidSystemMetadata
      DOIException
      IOException
      org.dataone.exceptions.MarshallingException
    • getSystemMetadataObject

      protected void getSystemMetadataObject(String pid) throws org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotFound, org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.NotImplemented, IOException, org.dataone.exceptions.MarshallingException
      Retrieve System Metadata
      Parameters:
      pid -
      Throws:
      org.dataone.service.exceptions.InvalidToken
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.NotFound
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.NotImplemented
      IOException
      org.dataone.exceptions.MarshallingException
    • putObject

      protected void putObject(String trailingPid, String action) throws org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.InvalidRequest, org.dataone.exceptions.MarshallingException, org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.IdentifierNotUnique, org.dataone.service.exceptions.UnsupportedType, org.dataone.service.exceptions.InsufficientResources, org.dataone.service.exceptions.InvalidSystemMetadata, org.dataone.service.exceptions.NotImplemented, org.dataone.service.exceptions.NotFound, IOException, InterruptedException, InstantiationException, IllegalAccessException, NoSuchAlgorithmException, org.apache.commons.fileupload.FileUploadException, InvocationTargetException
      Inserts or updates the object
      Parameters:
      trailingPid - the pid part of in the url
      action - indicate that it is insert or update
      Throws:
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.exceptions.MarshallingException
      org.dataone.service.exceptions.NotImplemented
      org.dataone.service.exceptions.InvalidSystemMetadata
      org.dataone.service.exceptions.InsufficientResources
      org.dataone.service.exceptions.UnsupportedType
      org.dataone.service.exceptions.IdentifierNotUnique
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.InvalidToken
      org.dataone.service.exceptions.NotFound
      IOException
      IllegalAccessException
      InstantiationException
      org.apache.commons.fileupload.FileUploadException
      NoSuchAlgorithmException
      InterruptedException
      InvocationTargetException
    • collectSynchronizationFailed

      protected org.dataone.service.exceptions.SynchronizationFailed collectSynchronizationFailed() throws IOException, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.InvalidRequest, org.dataone.exceptions.MarshallingException, InstantiationException, IllegalAccessException, ParserConfigurationException, SAXException
      Throws:
      IOException
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.exceptions.MarshallingException
      InstantiationException
      IllegalAccessException
      ParserConfigurationException
      SAXException
    • updateSystemMetadata

      protected void updateSystemMetadata() throws org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.InvalidRequest, InstantiationException, IllegalAccessException, IOException, org.dataone.exceptions.MarshallingException, org.dataone.service.exceptions.NotImplemented, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.InvalidSystemMetadata, org.dataone.service.exceptions.InvalidToken
      Update the system metadata for a specified identifier
      Throws:
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.InvalidRequest
      InstantiationException
      IllegalAccessException
      IOException
      org.dataone.exceptions.MarshallingException
      org.dataone.service.exceptions.NotImplemented
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.InvalidSystemMetadata
      org.dataone.service.exceptions.InvalidToken
    • reindex

      protected void reindex(String pid) throws org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotImplemented, IOException
      Handle the reindex request
      Parameters:
      pid - the pid which will be indexed. It can be null, which means we will do a batch reindex based on the query part
      Throws:
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.NotImplemented
      IOException
    • updateIdMetadata

      protected void updateIdMetadata(String pid) throws org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.NotImplemented, IOException
      Handle the request to update identifiers' (such as DOI) metadata on the third party service
      Parameters:
      pid - the pid which will be updated. It can be null, which means we will do a batch of update based on the query part.
      Throws:
      org.dataone.service.exceptions.ServiceFailure
      org.dataone.service.exceptions.NotAuthorized
      org.dataone.service.exceptions.InvalidRequest
      org.dataone.service.exceptions.NotImplemented
      IOException