org.zkoss.zkplus.util
Class ThreadLocalListener
java.lang.Object
org.zkoss.zkplus.util.ThreadLocalListener
- All Implemented Interfaces:
- org.zkoss.zk.ui.event.EventThreadCleanup, org.zkoss.zk.ui.event.EventThreadInit, org.zkoss.zk.ui.event.EventThreadResume
public class ThreadLocalListener
- extends java.lang.Object
- implements org.zkoss.zk.ui.event.EventThreadInit, org.zkoss.zk.ui.event.EventThreadCleanup, org.zkoss.zk.ui.event.EventThreadResume
Listener to make sure servlet thread and ZK event thread got the same ThreadLocal values. You
have to declare this listener in WEB-INF/zk.xml as follows.
<listener>
<description>ThreadLocal Synchronization Listener</description>
<listener-class>org.zkoss.zkplus.util.ThreadLocalListener</listener-class>
</listener>
Besides that, you have to specify what ThreadLocal variables you want to sync. They are also
spcified in WEB-INF/zk.xml file in the form as below.
<preference>
<name>ThreadLocal</name>
<value>
class1=field1,field2,...;
class2=field1,field2,...;
...
</value>
</preference>
For example, to support synchronizing Spring's thread bounded resources, you have to specify the following
ThreadLocal variables:
<preference>
<name>ThreadLocal</name>
<value>
org.springframework.transaction.support.TransactionSynchronizationManager=resources,synchronizations,currentTransactionName,currentTransactionReadOnly,actualTransactionActive;
org.springframework.orm.hibernate3.SessionFactoryUtils=deferredCloseHolder;
org.springframework.transaction.interceptor.TransactionAspectSupport=transactionInfoHolder; <!-- ver. 2+ -->
<!--org.springframework.transaction.interceptor.TransactionAspectSupport=currentTransactionInfo; ver. 1.28 -->
</value>
</preference>
Another example, when you specify the Spring's bean as scope="session", you have to specify the following
ThreadLocal variables since Spring 2.0 use RequestContextHolder to handle the bean's scope.
<preference>
<name>ThreadLocal</name>
<value>
org.springframework.web.context.request.RequestContextHolder=requestAttributesHolder,inheritableRequestAttributesHolder;
</value>
- Since:
- 2.4.1
- Author:
- henrichen
|
Method Summary |
void |
abortResume(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
|
void |
afterResume(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
|
void |
beforeResume(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
|
void |
cleanup(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt,
java.util.List errs)
|
void |
complete(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
|
void |
init(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
|
void |
prepare(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ThreadLocalListener
public ThreadLocalListener()
prepare
public void prepare(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
- Specified by:
prepare in interface org.zkoss.zk.ui.event.EventThreadInit
init
public void init(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
- Specified by:
init in interface org.zkoss.zk.ui.event.EventThreadInit
cleanup
public void cleanup(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt,
java.util.List errs)
- Specified by:
cleanup in interface org.zkoss.zk.ui.event.EventThreadCleanup
complete
public void complete(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
- Specified by:
complete in interface org.zkoss.zk.ui.event.EventThreadCleanup
beforeResume
public void beforeResume(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
- Specified by:
beforeResume in interface org.zkoss.zk.ui.event.EventThreadResume
afterResume
public void afterResume(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
- Specified by:
afterResume in interface org.zkoss.zk.ui.event.EventThreadResume
abortResume
public void abortResume(org.zkoss.zk.ui.Component comp,
org.zkoss.zk.ui.event.Event evt)
- Specified by:
abortResume in interface org.zkoss.zk.ui.event.EventThreadResume
Copyright © 2005-2007 Potix Corporation. All Rights Reserved.