|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.cocoon.util.AbstractLogEnabled org.apache.cocoon.components.flow.ContinuationsManagerImpl
The default implementation of ContinuationsManager
.
There are
two modes of work:
ContinuationsManager
Nested Class Summary | |
protected class |
ContinuationsManagerImpl.HolderAwareWebContinuation
WebContinuation extension that holds also the information about the holder. |
class |
ContinuationsManagerImpl.WebContinuationsHolder
A holder for WebContinuations. |
Field Summary | |
protected boolean |
bindContinuationsToSession
|
protected byte[] |
bytes
|
protected Context |
context
|
protected ContinuationsManagerImpl.WebContinuationsHolder |
continuationsHolder
Main continuations holder. |
protected int |
defaultTimeToLive
How long does a continuation exist in memory since the last access? The time is in miliseconds, and the default is 1 hour. |
protected long |
expirationCheckInterval
|
protected SortedSet |
expirations
Sorted set of WebContinuation instances, based on
their expiration time. |
protected Set |
forest
Maintains the forest of WebContinuation trees. |
protected SecureRandom |
random
Random number generator used to create continuation ID |
protected ServiceManager |
serviceManager
|
Fields inherited from interface org.apache.cocoon.components.flow.ContinuationsManager |
ROLE |
Constructor Summary | |
ContinuationsManagerImpl()
|
Method Summary | |
protected void |
_detach(org.apache.cocoon.components.flow.WebContinuation wk)
Detach this continuation from parent. |
void |
configure(Configuration config)
|
void |
contextualize(Context context)
|
org.apache.cocoon.components.flow.WebContinuation |
createWebContinuation(Object kont,
org.apache.cocoon.components.flow.WebContinuation parent,
int timeToLive,
String interpreterId,
org.apache.cocoon.components.flow.ContinuationsDisposer disposer)
|
void |
displayAllContinuations()
Dump to Log file all WebContinuation s
in the system |
protected void |
displayExpireSet()
Dump to Log file the current contents of the expirations SortedSet |
protected void |
disposeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder,
org.apache.cocoon.components.flow.WebContinuation wk)
Makes the continuation inaccessible for lookup, and triggers possible needed cleanup code through the ContinuationsDisposer interface. |
protected void |
expireContinuations()
Remove all continuations which have already expired. |
protected org.apache.cocoon.components.flow.WebContinuation |
generateContinuation(Object kont,
org.apache.cocoon.components.flow.WebContinuation parent,
int ttl,
String interpreterId,
org.apache.cocoon.components.flow.ContinuationsDisposer disposer)
Create WebContinuation and generate unique identifier for
it. |
List |
getWebContinuationsDataBeanList()
Get a list of all web continuations (data only) |
protected void |
handleLeafContinuationExpiration(org.apache.cocoon.components.flow.WebContinuation wk)
When a new continuation is created in @link #createWebContinuation(Object, WebContinuation, int, String, ContinuationsDisposer), it is registered in the expiration set in order to be evaluated by the invalidation mechanism. |
protected void |
handleParentContinuationExpiration(org.apache.cocoon.components.flow.WebContinuation parent)
When a new continuation is created in @link #createWebContinuation(Object, WebContinuation, int, String, ContinuationsDisposer), its parent continuation is removed from the expiration set. |
protected void |
invalidateContinuations(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder)
Method used by WebContinuationsHolder to notify the continuations manager about session invalidation. |
void |
invalidateWebContinuation(org.apache.cocoon.components.flow.WebContinuation wk)
|
org.apache.cocoon.components.flow.WebContinuation |
lookupWebContinuation(String id,
String interpreterId)
|
ContinuationsManagerImpl.WebContinuationsHolder |
lookupWebContinuationsHolder(boolean createNew)
Lookup a proper web continuations holder. |
protected void |
removeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder,
org.apache.cocoon.components.flow.WebContinuation wk)
Removes an expired leaf WebContinuation node
from its continuation tree, and recursively removes its
parent(s) if it they have expired and have no (other) children. |
void |
service(ServiceManager manager)
|
Methods inherited from class org.apache.cocoon.util.AbstractLogEnabled |
getLogger, setLogger |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected SecureRandom random
protected byte[] bytes
protected int defaultTimeToLive
protected Set forest
WebContinuation
trees.
This set is used only for debugging puroses by
displayAllContinuations()
method.
protected ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder
protected SortedSet expirations
WebContinuation
instances, based on
their expiration time. This is used by the background thread to
invalidate continuations.
protected boolean bindContinuationsToSession
protected ServiceManager serviceManager
protected Context context
protected long expirationCheckInterval
Constructor Detail |
public ContinuationsManagerImpl() throws Exception
Method Detail |
public void service(ServiceManager manager) throws ServiceException
service
in interface Serviceable
ServiceException
public void configure(Configuration config)
configure
in interface Configurable
public org.apache.cocoon.components.flow.WebContinuation createWebContinuation(Object kont, org.apache.cocoon.components.flow.WebContinuation parent, int timeToLive, String interpreterId, org.apache.cocoon.components.flow.ContinuationsDisposer disposer)
createWebContinuation
in interface org.apache.cocoon.components.flow.ContinuationsManager
protected void handleLeafContinuationExpiration(org.apache.cocoon.components.flow.WebContinuation wk)
protected void handleParentContinuationExpiration(org.apache.cocoon.components.flow.WebContinuation parent)
public List getWebContinuationsDataBeanList()
getWebContinuationsDataBeanList
in interface org.apache.cocoon.components.flow.ContinuationsManager
public org.apache.cocoon.components.flow.WebContinuation lookupWebContinuation(String id, String interpreterId)
lookupWebContinuation
in interface org.apache.cocoon.components.flow.ContinuationsManager
protected org.apache.cocoon.components.flow.WebContinuation generateContinuation(Object kont, org.apache.cocoon.components.flow.WebContinuation parent, int ttl, String interpreterId, org.apache.cocoon.components.flow.ContinuationsDisposer disposer)
WebContinuation
and generate unique identifier for
it. The identifier is generated using a cryptographically strong
algorithm to prevent people to generate their own identifiers.
It has the side effect of interning the continuation object in the
idToWebCont
hash table.
kont
- an Object
value representing continuationparent
- value representing parent WebContinuation
ttl
- WebContinuation
time to liveinterpreterId
- id of interpreter invoking continuation creationdisposer
- ContinuationsDisposer
instance to use for
cleanup of the continuation.
WebContinuation
with unique
identifierpublic void invalidateWebContinuation(org.apache.cocoon.components.flow.WebContinuation wk)
invalidateWebContinuation
in interface org.apache.cocoon.components.flow.ContinuationsManager
protected void _detach(org.apache.cocoon.components.flow.WebContinuation wk)
forest
set, or, if it has parent,
from parent's children collection.
wk
- Continuation to detach from parent.protected void disposeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder, org.apache.cocoon.components.flow.WebContinuation wk)
continuationsHolder
- wk
- the continuation to dispose.protected void removeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder, org.apache.cocoon.components.flow.WebContinuation wk)
WebContinuation
node
from its continuation tree, and recursively removes its
parent(s) if it they have expired and have no (other) children.
continuationsHolder
- wk
- WebContinuation
nodeprotected void displayExpireSet()
SortedSet
public void displayAllContinuations()
WebContinuation
s
in the system
displayAllContinuations
in interface org.apache.cocoon.components.flow.ContinuationsManager
protected void expireContinuations()
protected void invalidateContinuations(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder)
public ContinuationsManagerImpl.WebContinuationsHolder lookupWebContinuationsHolder(boolean createNew)
createNew
- should the manager create a continuations holder in session
when none found?public void contextualize(Context context) throws ContextException
contextualize
in interface Contextualizable
ContextException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |