Class StatelessRequestServiceImpl

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Clears out the settings inside this service.
      String endRequest​(Exception failure)
      Ends the current running request, this can indicate success or failure of the request, this will trigger the interceptors and normally would be caused by a servlet request ending, note that a request cannot be ended twice, once it is ended this will just return null
      Request getCurrentRequest()
      Finds out of there is a request running in this thread and if so returns it
      String getCurrentRequestId()
      Finds out of there is a request running in this thread and if so what the id of that request is.
      String getCurrentUserId()
      (non-Javadoc)
      void init()
      Executed after the service is created and all dependencies and configurations injected.
      void registerRequestInterceptor​(RequestInterceptor interceptor)
      Allows developers to perform actions on the start and end of the request cycle, if you decide you do not need to use your interceptor anymore then simply destroy it (dereference it) and the service will stop calling it, along those lines you should not register an interceptor that you do not keep a reference to (like an inline class or registerRequestListener(new YourInterceptor())) as this will be destroyed immediately, this registration is ClassLoader safe
      void setConfigurationService​(ConfigurationService configurationService)  
      void setCurrentUserId​(UUID epersonId)
      (non-Javadoc)
      void shutdown()
      Called as the service manager is stopping or shutting down.
      String startRequest()
      Initiates a request in the system.
      String startRequest​(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response)
      Initiates a request in the system, normally this would be triggered by a servlet request starting
      Only one request can be associated with the current thread so if another one is running it will be destroyed and a new one will be created
      Note that requests are expected to be manually ended somehow and will not be closed out automatically
    • Constructor Detail

      • StatelessRequestServiceImpl

        public StatelessRequestServiceImpl()
    • Method Detail

      • setConfigurationService

        @Autowired
        public void setConfigurationService​(ConfigurationService configurationService)
      • init

        public void init()
        Description copied from interface: InitializedService
        Executed after the service is created and all dependencies and configurations injected.
        Specified by:
        init in interface InitializedService
      • shutdown

        public void shutdown()
        Description copied from interface: ShutdownService
        Called as the service manager is stopping or shutting down.
        Specified by:
        shutdown in interface ShutdownService
      • clear

        public void clear()
        Clears out the settings inside this service. Mostly for testing.
      • startRequest

        public String startRequest()
        Description copied from interface: RequestService
        Initiates a request in the system. Normally this would be triggered by a servlet request starting.

        Only one request can be associated with the current thread, so if another one is running it will be destroyed and a new one will be created.

        Note that requests are expected to be manually ended somehow and will not be closed out automatically.

        Specified by:
        startRequest in interface RequestService
        Returns:
        the unique generated id for the new request
      • startRequest

        public String startRequest​(javax.servlet.ServletRequest request,
                                   javax.servlet.ServletResponse response)
        Description copied from interface: RequestService
        Initiates a request in the system, normally this would be triggered by a servlet request starting
        Only one request can be associated with the current thread so if another one is running it will be destroyed and a new one will be created
        Note that requests are expected to be manually ended somehow and will not be closed out automatically
        Specified by:
        startRequest in interface RequestService
        Parameters:
        request - servlet request
        response - servlet response
        Returns:
        the unique generated id for the new request
      • endRequest

        public String endRequest​(Exception failure)
        Description copied from interface: RequestService
        Ends the current running request, this can indicate success or failure of the request, this will trigger the interceptors and normally would be caused by a servlet request ending, note that a request cannot be ended twice, once it is ended this will just return null
        Specified by:
        endRequest in interface RequestService
        Parameters:
        failure - (optional) this is the exception associated with the failure. Leave as null if the request is ending successfully. You can make up a RuntimeException if you just need to indicate that the request failed.
        Returns:
        the request ID if the request closes successfully and is not already closed OR null if there is no current request.
      • registerRequestInterceptor

        public void registerRequestInterceptor​(RequestInterceptor interceptor)
        Description copied from interface: RequestService
        Allows developers to perform actions on the start and end of the request cycle, if you decide you do not need to use your interceptor anymore then simply destroy it (dereference it) and the service will stop calling it, along those lines you should not register an interceptor that you do not keep a reference to (like an inline class or registerRequestListener(new YourInterceptor())) as this will be destroyed immediately, this registration is ClassLoader safe
        Specified by:
        registerRequestInterceptor in interface RequestService
        Parameters:
        interceptor - an implementation of RequestInterceptor
      • setCurrentUserId

        public void setCurrentUserId​(UUID epersonId)
        (non-Javadoc)
        Specified by:
        setCurrentUserId in interface RequestService
        See Also:
        org.dspace.services.RequestService#setCurrentUserId()
      • getCurrentRequestId

        public String getCurrentRequestId()
        Description copied from interface: RequestService
        Finds out of there is a request running in this thread and if so what the id of that request is.
        Specified by:
        getCurrentRequestId in interface RequestService
        Returns:
        the id of the current request for this thread OR null if there is not one
      • getCurrentRequest

        public Request getCurrentRequest()
        Description copied from interface: RequestService
        Finds out of there is a request running in this thread and if so returns it
        Specified by:
        getCurrentRequest in interface RequestService
        Returns:
        the current request for this thread OR null if there is not one