|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.catalina.cluster.session.DeltaSession
Similar to the StandardSession, this code is identical, but for update and some small issues, simply copied in the first release. This session will keep track of deltas during a request.
IMPLEMENTATION NOTE : An instance of this class represents both the
internal (Session) and application level (HttpSession) view of the session.
However, because the class itself is not declared public, Java logic outside
of the org.apache.catalina.session package cannot cast an
HttpSession view of this instance back to a Session view.
IMPLEMENTATION NOTE : If you add fields to this class, you must make sure that you carry them over in the read/writeObject methods so that this class is properly serialized.
| Field Summary | |
protected int |
accessCount
The access count for this session |
protected static java.lang.String[] |
EMPTY_ARRAY
Type array. |
protected boolean |
isValid
Flag indicating whether this session is valid or not. |
static org.apache.commons.logging.Log |
log
|
protected static StringManager |
smp
The string manager for this package. |
| Fields inherited from interface org.apache.catalina.Session |
SESSION_ACTIVATED_EVENT, SESSION_CREATED_EVENT, SESSION_DESTROYED_EVENT, SESSION_PASSIVATED_EVENT |
| Constructor Summary | |
DeltaSession(Manager manager)
Construct a new Session associated with the specified Manager. |
|
| Method Summary | |
void |
access()
Update the accessed time information for this session. |
void |
addSessionListener(SessionListener listener)
Add a session event listener to this component. |
void |
endAccess()
End access to the session. |
void |
expire()
Perform the internal processing required to invalidate this session, without triggering an exception if the session has already expired. |
void |
expire(boolean notify)
Perform the internal processing required to invalidate this session, without triggering an exception if the session has already expired. |
void |
expire(boolean notify,
boolean notifyCluster)
|
void |
fireSessionEvent(java.lang.String type,
java.lang.Object data)
Notify all session event listeners that a particular event has occurred for this Session. |
protected int |
getAccessCount()
|
java.lang.Object |
getAttribute(java.lang.String name)
Return the object bound with the specified name in this session, or null if no object is bound with that name. |
protected java.lang.Object |
getAttributeInternal(java.lang.String name)
Return the value of an attribute without a check for validity. |
java.util.Enumeration |
getAttributeNames()
Return an Enumeration of String objects
containing the names of the objects bound to this session. |
java.lang.String |
getAuthType()
Return the authentication type used to authenticate our cached Principal, if any. |
long |
getCreationTime()
Return the time when this session was created, in milliseconds since midnight, January 1, 1970 GMT. |
DeltaRequest |
getDeltaRequest()
|
protected int |
getExpireTolerance()
|
java.lang.String |
getId()
Return the session identifier for this session. |
java.lang.String |
getIdInternal()
Return the session identifier for this session. |
java.lang.String |
getInfo()
Return descriptive information about this Session implementation and the corresponding version number, in the format <description>/<version>. |
long |
getLastAccessedTime()
Return the last time the client sent a request associated with this session, as the number of milliseconds since midnight, January 1, 1970 GMT. |
long |
getLastAccessedTimeInternal()
Return the last client access time without invalidation check |
protected long |
getLastTimeReplicated()
|
Manager |
getManager()
Return the Manager within which this Session is valid. |
int |
getMaxInactiveInterval()
Return the maximum time interval, in seconds, between client requests before the servlet container will invalidate the session. |
java.lang.Object |
getNote(java.lang.String name)
Return the object bound with the specified name to the internal notes for this session, or null if no such binding exists. |
java.util.Iterator |
getNoteNames()
Return an Iterator containing the String names of all notes bindings that exist for this session. |
java.security.Principal |
getPrincipal()
Return the authenticated Principal that is associated with this Session. |
javax.servlet.ServletContext |
getServletContext()
Return the ServletContext to which this session belongs. |
javax.servlet.http.HttpSession |
getSession()
Return the HttpSession for which this object is the
facade. |
javax.servlet.http.HttpSessionContext |
getSessionContext()
Deprecated. As of Version 2.1, this method is deprecated and has no replacement. It will be removed in a future version of the Java Servlet API. |
java.lang.Object |
getValue(java.lang.String name)
Deprecated. As of Version 2.2, this method is replaced by getAttribute() |
java.lang.String[] |
getValueNames()
Deprecated. As of Version 2.2, this method is replaced by getAttributeNames() |
void |
invalidate()
Invalidates this session and unbinds any objects bound to it. |
boolean |
isNew()
Return true if the client does not yet know about the
session, or if the client chooses not to join the session. |
boolean |
isPrimarySession()
returns true if this session is the primary session, if that is the case, the manager can expire it upon timeout. |
boolean |
isValid()
Return the isValid flag for this session. |
protected java.lang.String[] |
keys()
Return the names of all currently defined session attributes as an array of Strings. |
void |
putValue(java.lang.String name,
java.lang.Object value)
Deprecated. As of Version 2.2, this method is replaced by setAttribute() |
void |
readObjectData(java.io.ObjectInputStream stream)
Read a serialized version of the contents of this session object from the specified object input stream, without requiring that the StandardSession itself have been serialized. |
void |
recycle()
Release all object references, and initialize instance variables, in preparation for reuse of this object. |
void |
removeAttribute(java.lang.String name)
Remove the object bound with the specified name from this session. |
void |
removeAttribute(java.lang.String name,
boolean notify)
Remove the object bound with the specified name from this session. |
void |
removeAttribute(java.lang.String name,
boolean notify,
boolean addDeltaRequest)
|
protected void |
removeAttributeInternal(java.lang.String name,
boolean notify,
boolean addDeltaRequest)
|
void |
removeNote(java.lang.String name)
Remove any object bound to the specified name in the internal notes for this session. |
void |
removeSessionListener(SessionListener listener)
Remove a session event listener from this component. |
void |
removeValue(java.lang.String name)
Deprecated. As of Version 2.2, this method is replaced by removeAttribute() |
void |
resetDeltaRequest()
|
protected void |
setAccessCount(int accessCount)
|
void |
setAttribute(java.lang.String name,
java.lang.Object value)
Bind an object to this session, using the specified name. |
void |
setAttribute(java.lang.String name,
java.lang.Object value,
boolean notify,
boolean addDeltaRequest)
|
void |
setAuthType(java.lang.String authType)
Set the authentication type used to authenticate our cached Principal, if any. |
void |
setAuthType(java.lang.String authType,
boolean addDeltaRequest)
|
void |
setCreationTime(long time)
Set the creation time for this session. |
protected void |
setExpireTolerance(int expireTolerance)
|
void |
setId(java.lang.String id)
Set the session identifier for this session. |
void |
setId(java.lang.String id,
boolean notify)
Set the session identifier for this session and optionally notifies any associated listeners that a new session has been created. |
void |
setIdInternal(java.lang.String id)
Set the session identifier for this session without notify listeners. |
protected void |
setLastTimeReplicated(long lastTimeReplicated)
|
void |
setManager(Manager manager)
Set the Manager within which this Session is valid. |
void |
setMaxInactiveInterval(int interval)
Set the maximum time interval, in seconds, between client requests before the servlet container will invalidate the session. |
void |
setMaxInactiveInterval(int interval,
boolean addDeltaRequest)
|
void |
setNew(boolean isNew)
Set the isNew flag for this session. |
void |
setNew(boolean isNew,
boolean addDeltaRequest)
|
void |
setNote(java.lang.String name,
java.lang.Object value)
Bind an object to a specified name in the internal notes associated with this session, replacing any existing binding for this name. |
void |
setPrimarySession(boolean primarySession)
Sets whether this is the primary session or not. |
void |
setPrincipal(java.security.Principal principal)
Set the authenticated Principal that is associated with this Session. |
void |
setPrincipal(java.security.Principal principal,
boolean addDeltaRequest)
|
void |
setValid(boolean isValid)
Set the isValid flag for this session. |
void |
tellNew()
Inform the listeners about the new session. |
java.lang.String |
toString()
Return a string representation of this object. |
void |
writeObjectData(java.io.ObjectOutputStream stream)
Write a serialized version of the contents of this session object to the specified object output stream, without requiring that the StandardSession itself have been serialized. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static org.apache.commons.logging.Log log
protected static StringManager smp
protected static final java.lang.String[] EMPTY_ARRAY
protected boolean isValid
protected transient int accessCount
| Constructor Detail |
public DeltaSession(Manager manager)
manager - The manager with which this Session is associated| Method Detail |
public boolean isPrimarySession()
isPrimarySession in interface ClusterSessionpublic void setPrimarySession(boolean primarySession)
setPrimarySession in interface ClusterSessionprimarySession - Flag valuepublic java.lang.String getAuthType()
getAuthType in interface Sessionpublic void setAuthType(java.lang.String authType)
setAuthType in interface SessionauthType - The new cached authentication type
public void setAuthType(java.lang.String authType,
boolean addDeltaRequest)
public void setCreationTime(long time)
setCreationTime in interface Sessiontime - The new creation timepublic java.lang.String getId()
getId in interface javax.servlet.http.HttpSessionpublic java.lang.String getIdInternal()
getIdInternal in interface Sessionpublic void setIdInternal(java.lang.String id)
id - The new session identifierpublic void setId(java.lang.String id)
setId in interface Sessionid - The new session identifier
public void setId(java.lang.String id,
boolean notify)
Session
setId in interface Sessionid - The new session identifiernotify - Should any associated listeners be notified that a new
session has been created?public void tellNew()
public java.lang.String getInfo()
<description>/<version>.
getInfo in interface Sessionpublic long getLastAccessedTime()
getLastAccessedTime in interface javax.servlet.http.HttpSessionpublic long getLastAccessedTimeInternal()
getLastAccessedTimeInternal in interface SessiongetLastAccessedTime().public Manager getManager()
getManager in interface Sessionpublic void setManager(Manager manager)
setManager in interface Sessionmanager - The new Managerpublic int getMaxInactiveInterval()
getMaxInactiveInterval in interface javax.servlet.http.HttpSessionpublic void setMaxInactiveInterval(int interval)
setMaxInactiveInterval in interface javax.servlet.http.HttpSessioninterval - The new maximum interval
public void setMaxInactiveInterval(int interval,
boolean addDeltaRequest)
public void setNew(boolean isNew)
isNew flag for this session.
setNew in interface SessionisNew - The new value for the isNew flag
public void setNew(boolean isNew,
boolean addDeltaRequest)
public java.security.Principal getPrincipal()
Authenticator with a means to cache a
previously authenticated Principal, and avoid potentially expensive
Realm.authenticate() calls on every request. If there is
no current associated Principal, return null.
getPrincipal in interface Sessionpublic void setPrincipal(java.security.Principal principal)
Authenticator with a means to cache a
previously authenticated Principal, and avoid potentially expensive
Realm.authenticate() calls on every request.
setPrincipal in interface Sessionprincipal - The new Principal, or null if none
public void setPrincipal(java.security.Principal principal,
boolean addDeltaRequest)
public javax.servlet.http.HttpSession getSession()
HttpSession for which this object is the
facade.
getSession in interface Sessionpublic boolean isValid()
isValid flag for this session.
isValid in interface Sessionpublic void setValid(boolean isValid)
isValid flag for this session.
setValid in interface SessionisValid - The new value for the isValid flagpublic void access()
access in interface Sessionpublic void endAccess()
Session
endAccess in interface Sessionpublic void addSessionListener(SessionListener listener)
addSessionListener in interface Sessionpublic void expire()
expire in interface Sessionpublic void expire(boolean notify)
notify - Should we notify listeners about the demise of this session?
public void expire(boolean notify,
boolean notifyCluster)
public java.lang.Object getNote(java.lang.String name)
null if no such binding exists.
getNote in interface Sessionname - Name of the note to be returnedpublic java.util.Iterator getNoteNames()
getNoteNames in interface Sessionpublic void recycle()
recycle in interface Sessionpublic void removeNote(java.lang.String name)
removeNote in interface Sessionname - Name of the note to be removedpublic void removeSessionListener(SessionListener listener)
removeSessionListener in interface Session
public void setNote(java.lang.String name,
java.lang.Object value)
setNote in interface Sessionname - Name to which the object should be boundvalue - Object to be bound to the specified namepublic java.lang.String toString()
public void readObjectData(java.io.ObjectInputStream stream)
throws java.lang.ClassNotFoundException,
java.io.IOException
stream - The object input stream to read from
java.lang.ClassNotFoundException - if an unknown class is specified
java.io.IOException - if an input/output error occurs
public void writeObjectData(java.io.ObjectOutputStream stream)
throws java.io.IOException
stream - The object output stream to write to
java.io.IOException - if an input/output error occurspublic void resetDeltaRequest()
public DeltaRequest getDeltaRequest()
public long getCreationTime()
getCreationTime in interface javax.servlet.http.HttpSessionjava.lang.IllegalStateException - if this method is called on an invalidated sessionpublic javax.servlet.ServletContext getServletContext()
getServletContext in interface javax.servlet.http.HttpSessionpublic javax.servlet.http.HttpSessionContext getSessionContext()
getSessionContext in interface javax.servlet.http.HttpSessionpublic java.lang.Object getAttribute(java.lang.String name)
null if no object is bound with that name.
getAttribute in interface javax.servlet.http.HttpSessionname - Name of the attribute to be returned
java.lang.IllegalStateException - if this method is called on an invalidated sessionpublic java.util.Enumeration getAttributeNames()
Enumeration of String objects
containing the names of the objects bound to this session.
getAttributeNames in interface javax.servlet.http.HttpSessionjava.lang.IllegalStateException - if this method is called on an invalidated sessionpublic java.lang.Object getValue(java.lang.String name)
getAttribute()
null if no object is bound with that name.
getValue in interface javax.servlet.http.HttpSessionname - Name of the value to be returned
java.lang.IllegalStateException - if this method is called on an invalidated sessionpublic java.lang.String[] getValueNames()
getAttributeNames()
getValueNames in interface javax.servlet.http.HttpSessionjava.lang.IllegalStateException - if this method is called on an invalidated sessionpublic void invalidate()
invalidate in interface javax.servlet.http.HttpSessionjava.lang.IllegalStateException - if this method is called on an invalidated sessionpublic boolean isNew()
true if the client does not yet know about the
session, or if the client chooses not to join the session. For example,
if the server used only cookie-based sessions, and the client has
disabled the use of cookies, then a session would be new on each request.
isNew in interface javax.servlet.http.HttpSessionjava.lang.IllegalStateException - if this method is called on an invalidated session
public void putValue(java.lang.String name,
java.lang.Object value)
setAttribute()
After this method executes, and if the object implements
HttpSessionBindingListener, the container calls
valueBound() on the object.
putValue in interface javax.servlet.http.HttpSessionname - Name to which the object is bound, cannot be nullvalue - Object to be bound, cannot be null
java.lang.IllegalStateException - if this method is called on an invalidated sessionpublic void removeAttribute(java.lang.String name)
After this method executes, and if the object implements
HttpSessionBindingListener, the container calls
valueUnbound() on the object.
removeAttribute in interface javax.servlet.http.HttpSessionname - Name of the object to remove from this session.
java.lang.IllegalStateException - if this method is called on an invalidated session
public void removeAttribute(java.lang.String name,
boolean notify)
After this method executes, and if the object implements
HttpSessionBindingListener, the container calls
valueUnbound() on the object.
name - Name of the object to remove from this session.notify - Should we notify interested listeners that this attribute is
being removed?
java.lang.IllegalStateException - if this method is called on an invalidated session
public void removeAttribute(java.lang.String name,
boolean notify,
boolean addDeltaRequest)
public void removeValue(java.lang.String name)
removeAttribute()
After this method executes, and if the object implements
HttpSessionBindingListener, the container calls
valueUnbound() on the object.
removeValue in interface javax.servlet.http.HttpSessionname - Name of the object to remove from this session.
java.lang.IllegalStateException - if this method is called on an invalidated session
public void setAttribute(java.lang.String name,
java.lang.Object value)
After this method executes, and if the object implements
HttpSessionBindingListener, the container calls
valueBound() on the object.
setAttribute in interface javax.servlet.http.HttpSessionname - Name to which the object is bound, cannot be nullvalue - Object to be bound, cannot be null
java.lang.IllegalArgumentException - if an attempt is made to add a non-serializable object in
an environment marked distributable.
java.lang.IllegalStateException - if this method is called on an invalidated session
public void setAttribute(java.lang.String name,
java.lang.Object value,
boolean notify,
boolean addDeltaRequest)
public void fireSessionEvent(java.lang.String type,
java.lang.Object data)
type - Event typedata - Event dataprotected java.lang.String[] keys()
protected java.lang.Object getAttributeInternal(java.lang.String name)
protected void removeAttributeInternal(java.lang.String name,
boolean notify,
boolean addDeltaRequest)
protected long getLastTimeReplicated()
protected void setLastTimeReplicated(long lastTimeReplicated)
protected void setAccessCount(int accessCount)
protected int getAccessCount()
protected void setExpireTolerance(int expireTolerance)
protected int getExpireTolerance()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||