org.directwebremoting.impl
Class DefaultScriptSessionManager

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

public class DefaultScriptSessionManager
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 DefaultScriptSessionManager 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
DefaultScriptSessionManager()
          Setup a timer that will invalidate sessions
 
Method Summary
 void addScriptSessionListener(ScriptSessionListener li)
          Maintain the list of ScriptSessionListeners
 RealScriptSession createScriptSession(java.lang.String page, java.lang.String httpSessionId)
          When a new client page-loads, we create a script session.
 java.util.Collection<ScriptSession> getAllScriptSessions()
          Get a list of all the currently known ScriptSessions by id.
 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
 java.util.Collection<ScriptSession> getScriptSessionsByPage(java.lang.String url)
          For a given script session id, either create a new ScriptSession object or retrieve an existing one if one exists.
 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)
          Accessor for the PageNormalizer.
 void setScriptSessionCheckTime(long scriptSessionCheckTime)
           
 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

DefaultScriptSessionManager

public DefaultScriptSessionManager()
Setup a timer that will invalidate sessions

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.

createScriptSession

public RealScriptSession createScriptSession(java.lang.String page,
                                             java.lang.String httpSessionId)
Description copied from interface: ScriptSessionManager
When a new client page-loads, we create a script session.

Specified by:
createScriptSession in interface ScriptSessionManager
Parameters:
page - The URL including 'http://', up to (but not including) '?' or '#'
httpSessionId - The session ID (or null if not known)
Returns:
The new script session id

getScriptSessionsByPage

public java.util.Collection<ScriptSession> getScriptSessionsByPage(java.lang.String url)
Description copied from interface: ScriptSessionManager
For a given script session id, either create a new ScriptSession object or retrieve an existing one if one exists.

Specified by:
getScriptSessionsByPage in interface ScriptSessionManager
Parameters:
url - The URL including 'http://', up to (but not including) '?' or '#'
Returns:
A ScriptSession.

getScriptSessionsByHttpSessionId

public java.util.Collection<RealScriptSession> getScriptSessionsByHttpSessionId(java.lang.String httpSessionId)
Lookup all the windows associated with a given browser

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

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)

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

setPageNormalizer

public void setPageNormalizer(PageNormalizer pageNormalizer)
Accessor for the PageNormalizer.

Parameters:
pageNormalizer - The new PageNormalizer

setScriptSessionCheckTime

public void setScriptSessionCheckTime(long scriptSessionCheckTime)
Parameters:
scriptSessionCheckTime - the scriptSessionCheckTime to set

Copyright ¬ 2005