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 the thread locale and the map it stores.
<T> PerThreadValue<T>
createValue()
          Creates a value using a unique internal key.
 java.lang.Object get(java.lang.Object key)
          Deprecated. use createValue() instead
<T> T
invoke(Invokable<T> invokable)
          Returns the result from the invocation, providing a try...finally to cleanup after.
 void put(java.lang.Object key, java.lang.Object value)
          Deprecated. use createValue() instead
 void run(java.lang.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 the thread locale and the map it stores.


get

java.lang.Object get(java.lang.Object key)
Deprecated. use createValue() instead

Returns an object stored in the per-thread map. When the object is a string, the expected name is service id.subkey. Unlike most of Tapestry, such keys will be case sensitive.

Parameters:
key - key used to retrieve object
Returns:
corresponding per-thread object, or null

put

void put(java.lang.Object key,
         java.lang.Object value)
Deprecated. use createValue() instead

Stores a value into the per-thread map.


createValue

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

Since:
5.2.0

run

void run(java.lang.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 © 2006-2011 Apache Software Foundation. All Rights Reserved.