org.apache.tapestry5.ioc.services
Interface PerthreadManager

All Known Implementing Classes:
PerthreadManagerImpl

public interface PerthreadManager

Manages per-thread data, and provides a way for listeners to know when such data should be cleaned up. Typically, data is cleaned up at the end of the request (in a web application). Tapestry IoC has any number of objects that need to know when this event occurs, so that they can clean up any per-thread/per-request state.

Due to TAPESTRY-2141 (and the underlying JDK 1.5 bug 5025230), this service has expanded to manage per-thread data (not just end-of-request listeners).


Method Summary
 void addThreadCleanupListener(ThreadCleanupListener listener)
          Adds a listener to the hub.
 void cleanup()
          Immediately performs a cleanup of the thread, notifying all listeners, then discarding all per-thread data stored by the manager.
<T> PerThreadValue<T>
createValue()
          Creates a value using a unique internal key.
<T> T
invoke(Invokable<T> invokable)
          Returns the result from the invocation, providing a try...finally to cleanup after.
 void run(Runnable runnable)
          Invokes Runnable.run(), providing a try...finally to cleanup after.
 

Method Detail

addThreadCleanupListener

void addThreadCleanupListener(ThreadCleanupListener listener)
Adds a listener to the hub. All listeners are discarded at the cleanup().

Parameters:
listener - to add

cleanup

void cleanup()
Immediately performs a cleanup of the thread, notifying all listeners, then discarding all per-thread data stored by the manager.


createValue

<T> PerThreadValue<T> createValue()
Creates a value using a unique internal key.

Since:
5.2.0

run

void run(Runnable runnable)
Invokes Runnable.run(), providing a try...finally to cleanup after.

Since:
5.2.0

invoke

<T> T invoke(Invokable<T> invokable)
Returns the result from the invocation, providing a try...finally to cleanup after.



Copyright © 2003-2012 The Apache Software Foundation.