| Allows a service to exist "per thread" (in each thread). This involves an inner proxy, with a
ThreadLocal whose initial value is derived from a
org.apache.tapestry.ioc.ObjectCreator .
Method invocations are delegated to the per-thread service instance. The proxy also implements
org.apache.tapestry.ioc.services.ThreadCleanupListener so that it can discard the
per-thread implementation.
This scheme ensures that, although the service builder method will be invoked many times over the
life of the application, the service decoration process occurs only once. The final calling chain
is: Service Proxy --> Decorator(s) --> PerThread Proxy --> (per thread) instance.
|