Interface RequestContextController


  • public interface RequestContextController
    The CDI container provides a built in instance of RequestContextController that is dependent scoped for the purposes of activating and deactivating. For example:
        @Inject
        private RequestContextController requestContextController;
    
        public void doRequest(String body) {
           // activate request context
           requestContextController.activate();
    
           // do work in a request context.
    
           // deactivate the request context
           requestContextController.deactivate();
        }
     
    Once the request context has been deactivated, you may activate it once again, creating a brand new request context. The activated request context is bound to the current thread, any injection points targeting a request scoped bean will be satisfied with the same request scoped objects.
    Since:
    2.0
    Author:
    John D. Ament
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean activate()
      Activates a RequestContext for the current thread if one is not already active.
      void deactivate()
      Deactivates the current Request Context if it was activated by this context controller.
    • Method Detail

      • activate

        boolean activate()
        Activates a RequestContext for the current thread if one is not already active.
        Returns:
        true if the context was activated by this invocation, false if not.
      • deactivate

        void deactivate()
                 throws ContextNotActiveException
        Deactivates the current Request Context if it was activated by this context controller. If the context is active but was not activated by this controller, then it may not be deactivated by this controller, meaning this method will do nothing. If the context is not active, a ContextNotActiveException is thrown.
        Throws:
        ContextNotActiveException - if the context is not active