Class ThreadLocalContainerResolver


  • public class ThreadLocalContainerResolver
    extends ContainerResolver
    ContainerResolver based on ThreadLocal.

    The ThreadLocalContainerResolver is the default implementation available from the ContainerResolver using ContainerResolver.getDefault(). Code sections that run with a Container must use the following pattern:

       public void m() {
         Container old = ContainerResolver.getDefault().enterContainer(myContainer);
         try {
           // ... method body
         } finally {
           ContainerResolver.getDefault().exitContainer(old);
         }
       }
     
    Since:
    2.2.7
    • Constructor Detail

      • ThreadLocalContainerResolver

        public ThreadLocalContainerResolver()
    • Method Detail

      • enterContainer

        public Container enterContainer​(Container container)
        Enters container
        Parameters:
        container - Container to set
        Returns:
        Previous container; must be remembered and passed to exitContainer
      • exitContainer

        public void exitContainer​(Container old)
        Exits container
        Parameters:
        old - Container returned from enterContainer
      • wrapExecutor

        public Executor wrapExecutor​(Container container,
                                     Executor ex)
        Used by Engine to wrap asynchronous Fiber executions
        Parameters:
        container - Container
        ex - Executor to wrap
        Returns:
        an Executor that will set the container during executions of Runnables