org.directwebremoting.impl
Class TransientScriptSessionManager

java.lang.Object
  extended by org.directwebremoting.impl.TransientScriptSessionManager
All Implemented Interfaces:
ScriptSessionManager

public class TransientScriptSessionManager
extends java.lang.Object
implements ScriptSessionManager

A default implementation of ScriptSessionManager.

There are synchronization constraints on this class that could be broken by subclasses. Specifically anyone accessing either sessionMap or pageSessionMap must be holding the sessionLock.

In addition you should note that DefaultScriptSession and TransientScriptSessionManager make calls to each other and you should take care not to break any constraints in inheriting from these classes.

Author:
Joe Walker [joe at getahead dot ltd dot uk]

Field Summary
static java.lang.String ATTRIBUTE_HTTPSESSIONID
          Use of this attribute is currently discouraged, we may make this public in a later release.
static java.lang.String ATTRIBUTE_PAGE
          Use of this attribute is currently discouraged, we may make this public in a later release.
 
Fields inherited from interface org.directwebremoting.extend.ScriptSessionManager
DEFAULT_TIMEOUT_MILLIS
 
Constructor Summary
TransientScriptSessionManager()
           
 
Method Summary
 void addScriptSessionListener(ScriptSessionListener li)
          Maintain the list of ScriptSessionListeners
 java.util.Collection<ScriptSession> getAllScriptSessions()
          Get a list of all the currently known ScriptSessions by id.
 java.lang.String getInitCode()
          Some implementations of ScriptSessionManager need to add custom code into engine.js to register ScriptSessions with the server.
 RealScriptSession getScriptSession(java.lang.String id, java.lang.String page, java.lang.String httpSessionId)
          For a given script session id, return the related ScriptSession object or null if the id is not known.
 java.util.Collection<RealScriptSession> getScriptSessionsByHttpSessionId(java.lang.String httpSessionId)
          Lookup all the windows associated with a given browser
 long getScriptSessionTimeout()
          Accessor for the time (in milliseconds) when unused ScriptSessions will expire
 void removeScriptSessionListener(ScriptSessionListener li)
          Maintain the list of ScriptSessionListeners
 void setPageNormalizer(PageNormalizer pageNormalizer)
          How we turn pages into the canonical form.
 void setScriptSessionTimeout(long scriptSessionTimeout)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTRIBUTE_HTTPSESSIONID

public static final java.lang.String ATTRIBUTE_HTTPSESSIONID
Use of this attribute is currently discouraged, we may make this public in a later release. Until then, it may change or be removed without warning.

See Also:
Constant Field Values

ATTRIBUTE_PAGE

public static final java.lang.String ATTRIBUTE_PAGE
Use of this attribute is currently discouraged, we may make this public in a later release. Until then, it may change or be removed without warning.

See Also:
Constant Field Values
Constructor Detail

TransientScriptSessionManager

public TransientScriptSessionManager()
Method Detail

getScriptSession

public RealScriptSession getScriptSession(java.lang.String id,
                                          java.lang.String page,
                                          java.lang.String httpSessionId)
Description copied from interface: ScriptSessionManager
For a given script session id, return the related ScriptSession object or null if the id is not known.

Specified by:
getScriptSession in interface ScriptSessionManager
Parameters:
id - The id to get a ScriptSession object for
page - The URL including 'http://', up to (but not including) '?' or '#' (or null if not known)
httpSessionId - The session ID (or null if not known)
Returns:
A ScriptSession to match the ID, or null if a match is not found.

getScriptSessionsByHttpSessionId

public java.util.Collection<RealScriptSession> getScriptSessionsByHttpSessionId(java.lang.String httpSessionId)
Description copied from interface: ScriptSessionManager
Lookup all the windows associated with a given browser

Specified by:
getScriptSessionsByHttpSessionId in interface ScriptSessionManager
Parameters:
httpSessionId - The browser id to lookup
Returns:
A list of script sessions for each open window

getAllScriptSessions

public java.util.Collection<ScriptSession> getAllScriptSessions()
Description copied from interface: ScriptSessionManager
Get a list of all the currently known ScriptSessions by id. Note that the list of known sessions is continually changing so it is possible that the list will be out of date by the time it is used. For this reason you should check that getScriptSession(String id) returns something non null.

Specified by:
getAllScriptSessions in interface ScriptSessionManager
Returns:
An iterator over the currently known sessions, by id

addScriptSessionListener

public void addScriptSessionListener(ScriptSessionListener li)
Description copied from interface: ScriptSessionManager
Maintain the list of ScriptSessionListeners

Specified by:
addScriptSessionListener in interface ScriptSessionManager
Parameters:
li - the ScriptSessionListener to add

removeScriptSessionListener

public void removeScriptSessionListener(ScriptSessionListener li)
Description copied from interface: ScriptSessionManager
Maintain the list of ScriptSessionListeners

Specified by:
removeScriptSessionListener in interface ScriptSessionManager
Parameters:
li - the ScriptSessionListener to remove

getInitCode

public java.lang.String getInitCode()
Description copied from interface: ScriptSessionManager
Some implementations of ScriptSessionManager need to add custom code into engine.js to register ScriptSessions with the server.

Specified by:
getInitCode in interface ScriptSessionManager

getScriptSessionTimeout

public long getScriptSessionTimeout()
Description copied from interface: ScriptSessionManager
Accessor for the time (in milliseconds) when unused ScriptSessions will expire

Specified by:
getScriptSessionTimeout in interface ScriptSessionManager
Returns:
the scriptSessionTimeout

setScriptSessionTimeout

public void setScriptSessionTimeout(long scriptSessionTimeout)

setPageNormalizer

public void setPageNormalizer(PageNormalizer pageNormalizer)
How we turn pages into the canonical form.

Parameters:
pageNormalizer - The new PageNormalizer

Copyright 2008