|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.avalon.framework.logger.AbstractLogEnabled
org.apache.cocoon.components.flow.ContinuationsManagerImpl
public class ContinuationsManagerImpl
The default implementation of ContinuationsManager.
There are
two modes of work:
ContinuationsManager| Nested Class Summary | |
|---|---|
protected static class |
ContinuationsManagerImpl.ExpirationPredicate
|
protected static class |
ContinuationsManagerImpl.HolderAwareWebContinuation
WebContinuation extension that holds also the information about the holder. |
protected class |
ContinuationsManagerImpl.WebContinuationsHolder
A holder for WebContinuations. |
| Field Summary | |
|---|---|
protected boolean |
bindContinuationsToSession
|
protected byte[] |
bytes
|
protected Context |
context
|
protected ValueInstrument |
continuationsCount
|
protected int |
continuationsCounter
|
protected CounterInstrument |
continuationsCreated
|
protected ContinuationsManagerImpl.WebContinuationsHolder |
continuationsHolder
Main continuations holder. |
protected CounterInstrument |
continuationsInvalidated
|
protected int |
defaultTimeToLive
How long does a continuation exist in memory since the last access? |
protected SortedSet |
expirations
Sorted set of WebContinuation instances, based on
their expiration time. |
protected ValueInstrument |
expirationsSize
|
protected String |
instrumentableName
|
protected boolean |
isContinuationSharingBugCompatible
|
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 |
| Fields inherited from interface org.apache.excalibur.instrument.Instrumentable |
|---|
EMPTY_INSTRUMENT_ARRAY, EMPTY_INSTRUMENTABLE_ARRAY |
| Constructor Summary | |
|---|---|
ContinuationsManagerImpl()
|
|
| Method Summary | |
|---|---|
void |
configure(Configuration config)
|
void |
contextualize(Context context)
|
WebContinuation |
createWebContinuation(Object kont,
WebContinuation parent,
int timeToLive,
String interpreterId,
ContinuationsDisposer disposer)
Create a WebContinuation object given a native
continuation object and its parent. |
void |
displayAllContinuations()
Dump to Log file all WebContinuations
in the system. |
protected void |
displayExpireSet()
Dump to Log file the current contents of the expirations SortedSet |
protected void |
disposeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder,
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 WebContinuation |
generateContinuation(Object kont,
WebContinuation parent,
int ttl,
String interpreterId,
ContinuationsDisposer disposer)
Create WebContinuation and generate unique identifier
for it. |
Instrumentable[] |
getChildInstrumentables()
|
Set |
getForest()
Get a set of all web continuations. |
String |
getInstrumentableName()
|
Instrument[] |
getInstruments()
|
List |
getWebContinuationsDataBeanList()
Deprecated. |
protected void |
invalidateContinuations(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder)
Method used by WebContinuationsHolder to notify the continuations manager about session invalidation. |
void |
invalidateWebContinuation(WebContinuation wk)
Invalidates a WebContinuation. |
WebContinuation |
lookupWebContinuation(String id,
String interpreterId)
Given a WebContinuation id, retrieve the associated
WebContinuation object. |
ContinuationsManagerImpl.WebContinuationsHolder |
lookupWebContinuationsHolder(boolean createNew)
Lookup a proper web continuations holder. |
protected void |
removeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder,
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)
|
void |
setInstrumentableName(String instrumentableName)
|
| Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled |
|---|
enableLogging, getLogger, setupLogger, setupLogger, setupLogger |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected SecureRandom random
protected final byte[] bytes
protected final SortedSet expirations
WebContinuation instances, based on
their expiration time. This is used by the background thread to
invalidate continuations.
protected ServiceManager serviceManager
protected Context context
protected int defaultTimeToLive
protected boolean isContinuationSharingBugCompatible
protected boolean bindContinuationsToSession
protected ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder
protected String instrumentableName
protected ValueInstrument continuationsCount
protected int continuationsCounter
protected ValueInstrument expirationsSize
protected CounterInstrument continuationsCreated
protected CounterInstrument continuationsInvalidated
| Constructor Detail |
|---|
public ContinuationsManagerImpl()
throws Exception
Exception| Method Detail |
|---|
public void contextualize(Context context)
throws ContextException
contextualize in interface ContextualizableContextException
public void service(ServiceManager manager)
throws ServiceException
service in interface ServiceableServiceExceptionpublic void configure(Configuration config)
configure in interface Configurablepublic void setInstrumentableName(String instrumentableName)
setInstrumentableName in interface Instrumentablepublic String getInstrumentableName()
getInstrumentableName in interface Instrumentablepublic Instrument[] getInstruments()
getInstruments in interface Instrumentablepublic Instrumentable[] getChildInstrumentables()
getChildInstrumentables in interface Instrumentable
public WebContinuation createWebContinuation(Object kont,
WebContinuation parent,
int timeToLive,
String interpreterId,
ContinuationsDisposer disposer)
ContinuationsManagerWebContinuation object given a native
continuation object and its parent. If the parent continuation is
null, the WebContinuation returned becomes the root
of a tree in the forest.
createWebContinuation in interface ContinuationsManagerkont - an Object valueparent - a WebContinuation valuetimeToLive - an int value indicating how long
in seconds this continuation will live in the server if not
accessedinterpreterId - id of interpreter invoking continuation creationdisposer - a ContinuationsDisposer instance to called when
the continuation gets cleaned up.
WebContinuation valueWebContinuation
public WebContinuation lookupWebContinuation(String id,
String interpreterId)
ContinuationsManagerWebContinuation id, retrieve the associated
WebContinuation object.
lookupWebContinuation in interface ContinuationsManagerid - a String valueinterpreterId - Id of an interpreter that queries for
the continuation
WebContinuation object, null if no such
WebContinuation could be found. Also null if
WebContinuation was found but interpreter id does
not match the one that the continuation was initially created for.
protected WebContinuation generateContinuation(Object kont,
WebContinuation parent,
int ttl,
String interpreterId,
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.
kont - an Object value representing continuationparent - value representing parent WebContinuationttl - 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(WebContinuation wk)
ContinuationsManagerWebContinuation. This effectively
means that the continuation object associated with it will no
longer be accessible from Web pages. Invalidating a
WebContinuation invalidates all the
WebContinuations which are children of it.
invalidateWebContinuation in interface ContinuationsManagerwk - a WebContinuation value
protected void disposeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder,
WebContinuation wk)
continuationsHolder - wk - the continuation to dispose.
protected void removeContinuation(ContinuationsManagerImpl.WebContinuationsHolder continuationsHolder,
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 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 Set getForest()
ContinuationsManager
getForest in interface ContinuationsManagerpublic List getWebContinuationsDataBeanList()
getWebContinuationsDataBeanList in interface ContinuationsManagerprotected void displayExpireSet()
SortedSet
public void displayAllContinuations()
WebContinuations
in the system.
This method will be changed to be an internal method solely for debugging
purposes just like displayExpireSet().
displayAllContinuations in interface ContinuationsManager
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||