Class SessionInfo
- java.lang.Object
- com.iizix.SessionInfo
 
- All Implemented Interfaces:
- IPrivateStorage,- java.lang.Cloneable
 - public class SessionInfo extends java.lang.Object implements IPrivateStorage, java.lang.Cloneable This class contains information of the remote party and its connection, etc.- Author:
- Christopher Mindus
 
- Field Summary- Fields - Modifier and Type - Field - Description - static int- API_TRACE_INDEXThe index for API trace.- static int- COMMUNICATION_TRACE_INDEXThe index for Communication trace.- static int- CONNECTOR_TRACE_INDEXThe index for Connector trace.- long- creationTimeThe creation time in milliseconds.- static int- ENDPOINT_TRACE_INDEXThe index for EndPoint trace.- static int- TRACE_BIT_BINARYThe trace level bits.- static int- TRACE_BIT_VERBOSEThe trace level bits for verbose trace.- byte[]- traceLevelsThe trace levels of the subsystems Communication, Connector, EndPoint, API.- SessionUserIdentifier- userThe session user identifier, null if not defined properly.
 - Constructor Summary- Constructors - Constructor - Description - SessionInfo(long connectionID, byte[] defaultTrace, java.net.SocketAddress remoteAddress, java.lang.String hostName)The full constructor with all parameters.- SessionInfo(long connectionID, java.net.SocketAddress remoteAddress, java.lang.String hostName)The constructor initiates the trace levels to defaults, and no User ID.- SessionInfo(java.net.SocketAddress remoteAddress)The constructor initiates the connection ID to -1 (none), the trace levels to defaults, and no User ID.
 - Method Summary- All Methods Static Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - void- assignRemoteAddress(java.net.SocketAddress remoteAddress, java.lang.String hostName, java.lang.String domain, int port, boolean isSecure)Assigns a remote address.- void- assignServerSessionID(long serverSessionID)Assigns the connection ID for a Server Session ID.- boolean- assignThread()Temporarily assigns a SessionInfo object to a thread.- SessionInfo- createClone()Creates a copy of an instance of this instance.- void- dispose()Disposes of this instance and cleans up thread usage.- boolean- doAPIBinaryTrace()Checks if API binary trace is on.- boolean- doAPIVerboseTrace()Checks if API verbose trace is on.- boolean- doCommunicationBinaryTrace()Checks if Communication binary trace is on.- boolean- doCommunicationVerboseTrace()Checks if Communication verbose trace is on.- boolean- doConnectorBinaryTrace()Checks if Connector binary trace is on.- boolean- doConnectorVerboseTrace()Checks if Connector verbose trace is on.- boolean- doEndPointBinaryTrace()Checks if EndPoint binary trace is on.- boolean- doEndPointVerboseTrace()Checks if EndPoint verbose trace is on.- long- getConnectionID()Gets the connection ID.- java.lang.String- getConnectionIDString()Gets the connection ID as a string.- static java.lang.String- getConnectionIDString(SessionInfo sessionInfo)Gets the connection ID as a string.- static java.lang.String- getConnectionIDString(SessionInfo sessionInfo, java.lang.String threadName, java.lang.String threadID)Gets the connection ID as a string.- java.lang.String- getDomain()Gets the domain name of the server.- java.lang.String- getHostName()Gets the host name, as provided by the (web) server for the connection without looking up using reverse DNS, null indicates not set.- static java.lang.String- getIDString(long id)Converts an ID into a string.- static long- getNextID()For Editor, used to get the Session ID.- int- getPort()Gets the port used for the connection.- java.util.Map<java.lang.String,java.lang.Object>- getPrivateStorageMap()Gets the concurrent hash map used to store the private data.- IGProp<?>- getReferenceLookupProperty()Gets the Session's reference look-up property.- java.net.SocketAddress- getRemoteAddress()Gets the address of the remote party, null if none is yet provided.- SessionID- getSessionID()Gets the session ID.- static SessionInfo- getSessionInfo()Tries to extract the SessionInfo from the current thread or the thread group.- static SessionInfo- getSessionInfoFBTS()Tries to extract the SessionInfo from the current thread or the thread group.- static java.lang.String- getTabDelimitedConnectionIDString(SessionInfo sessionInfo, java.lang.String threadName, java.lang.String threadID)Gets the connection ID as a string.- java.util.UUID- getUUID()Gets the unique session UUID for client reconnection purposes.- java.lang.String- getUUIDString()Gets the unique session UUID for client reconnection purposes.- Worker- getWorker()Gets the worker for the session.- boolean- isSecure()Return if the connection is secured using SSL/TLS.- void- setWorker(Worker worker)Sets the worker for the session.- java.lang.String- toString()Gets the string representation of the information in this instance.- static void- unassignThread()Cleans up after assigning a SessionInfo object to a thread.- Methods inherited from class java.lang.Object- clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - Methods inherited from interface com.iizix.api.IPrivateStorage- getPrivateData, getPrivateData, setPrivateData
 
 
- Field Detail- COMMUNICATION_TRACE_INDEX- public static final int COMMUNICATION_TRACE_INDEX The index for Communication trace.- See Also:
- Constant Field Values
 
 - CONNECTOR_TRACE_INDEX- public static final int CONNECTOR_TRACE_INDEX The index for Connector trace.- See Also:
- Constant Field Values
 
 - ENDPOINT_TRACE_INDEX- public static final int ENDPOINT_TRACE_INDEX The index for EndPoint trace.- See Also:
- Constant Field Values
 
 - API_TRACE_INDEX- public static final int API_TRACE_INDEX The index for API trace.- See Also:
- Constant Field Values
 
 - TRACE_BIT_BINARY- public static final int TRACE_BIT_BINARY The trace level bits.- See Also:
- Constant Field Values
 
 - TRACE_BIT_VERBOSE- public static final int TRACE_BIT_VERBOSE The trace level bits for verbose trace.- See Also:
- Constant Field Values
 
 - user- public SessionUserIdentifier user The session user identifier, null if not defined properly.
 - traceLevels- public final byte[] traceLevels The trace levels of the subsystems Communication, Connector, EndPoint, API. The values are initially set to -1 indicating it used the default trace setting. The range of the trace is 0-3, or -1 for default.- The values are: 
 -1 = default trace,
 0 = no trace,
 1 = binary trace,
 2 = verbose trace,
 3 = binary and verbose trace.- The indexes are: 
 0 = Communication,
 1 = Connector,
 2 = EndPoint,
 3 = API.
 - creationTime- public final long creationTime The creation time in milliseconds.
 
 - Constructor Detail- SessionInfo- public SessionInfo(java.net.SocketAddress remoteAddress) The constructor initiates the connection ID to -1 (none), the trace levels to defaults, and no User ID.- Parameters:
- remoteAddress- The remote address of the party.
 
 - SessionInfo- public SessionInfo(long connectionID, java.net.SocketAddress remoteAddress, java.lang.String hostName)The constructor initiates the trace levels to defaults, and no User ID.- Parameters:
- connectionID- The connection ID.
- remoteAddress- The remote address of the party.
- hostName- The host name of the remote party.
 
 - SessionInfo- public SessionInfo(long connectionID, byte[] defaultTrace, java.net.SocketAddress remoteAddress, java.lang.String hostName)The full constructor with all parameters.- Parameters:
- connectionID- The connection ID.
- defaultTrace- The array of trace settings, non-null.
- remoteAddress- The remote address of the party.
- hostName- The host name of the remote party.
- Throws:
- java.lang.NullPointerException- If- defaultTraceis null.
- java.lang.IllegalArgumentException- If- defaultTraceis is not of length 4.
 
 
 - Method Detail- getNextID- public static long getNextID() For Editor, used to get the Session ID.- Returns:
- The next unique Session ID.
 
 - getSessionInfo- public static SessionInfo getSessionInfo() Tries to extract the SessionInfo from the current thread or the thread group.- Returns:
- The SessionInfo instance for the current calling thread or thread group, or null if not found.
 
 - getSessionInfoFBTS- public static SessionInfo getSessionInfoFBTS() Tries to extract the SessionInfo from the current thread or the thread group.- Returns:
- The SessionInfo instance for the current calling thread or thread group, or the System SessionInfo if no other was found (FBS=FallBackToSystem).
 
 - unassignThread- public static void unassignThread() Cleans up after assigning a SessionInfo object to a thread.- This call is intended to be used with threads in thread-pools. - This is needed to be called in order not to leak memory. When a SessionInfo object is disposed, it performs a clean-up. 
 - getPrivateStorageMap- public java.util.Map<java.lang.String,java.lang.Object> getPrivateStorageMap() Gets the concurrent hash map used to store the private data.- Specified by:
- getPrivateStorageMapin interface- IPrivateStorage
- Returns:
- The private storage map.
 
 - getUUID- public java.util.UUID getUUID() Gets the unique session UUID for client reconnection purposes.- Returns:
- The unique UUID.
 
 - getUUIDString- public java.lang.String getUUIDString() Gets the unique session UUID for client reconnection purposes.- Returns:
- String The unique session UUID as UUID.toString()
 
 - assignRemoteAddress- public void assignRemoteAddress(java.net.SocketAddress remoteAddress, java.lang.String hostName, java.lang.String domain, int port, boolean isSecure)Assigns a remote address.- Parameters:
- remoteAddress- The remote address.
- hostName- The host name.
- domain- The domain name.
- port- The port number used for the connection, or zero for none specified.
- isSecure- The secure (SSL/TLS) flag.
- Throws:
- java.lang.IllegalStateException- If the domain name is already set to another value.
 
 - assignServerSessionID- public void assignServerSessionID(long serverSessionID) Assigns the connection ID for a Server Session ID.- Parameters:
- serverSessionID- The server session ID to assign.
 
 - getRemoteAddress- public java.net.SocketAddress getRemoteAddress() Gets the address of the remote party, null if none is yet provided.- Returns:
- The address, or null if not yet assigned.
 
 - getHostName- public java.lang.String getHostName() Gets the host name, as provided by the (web) server for the connection without looking up using reverse DNS, null indicates not set.- Returns:
- The host name, or null if not set.
 
 - getDomain- public java.lang.String getDomain() Gets the domain name of the server.- Returns:
- The domain name.
 
 - getPort- public int getPort() Gets the port used for the connection.- Returns:
- The port number, or zero for none specified.
 
 - isSecure- public boolean isSecure() Return if the connection is secured using SSL/TLS.- Returns:
- The secure flag. Please note that if the server is behind a proxy, the connection might be secure anyway.
 
 - assignThread- public boolean assignThread() Temporarily assigns a SessionInfo object to a thread.- This call is intended to be used with threads in thread-pools. - It is very important to clean-up with a "fails-safe" try-finally or similar to call the - unassignThread()method. This is needed EVEN if the thread will not be used for other purposes. Failure in doing so will cause a memory leak until this instance of SessionInfo is disposed of. It is ALSO very important to check the return code whether to call- SessionInfo.unassignThread()or not.- Returns:
- true for successfully assigned and that a call to SessionInfo.unassignThread()in the try-finally clauseMUSTbe done, false if already assigned andSessionInfo.unassignThread()SHOULD NOT be called.
 
 - createClone- public SessionInfo createClone() Creates a copy of an instance of this instance. This is used in the Administration Interface. The session ID and worker instances are cleared.- Returns:
- A cloned SessionInfo instance.
 
 - getConnectionID- public long getConnectionID() Gets the connection ID.- Returns:
- This connection ID.
 
 - getConnectionIDString- public static java.lang.String getConnectionIDString(SessionInfo sessionInfo) Gets the connection ID as a string. If no data exists, i.e. source is null or -1, the string "<system>" is returned.- Parameters:
- sessionInfo- The session information, or null for system.
- Returns:
- The string for the session ID in the parameter.
 
 - getConnectionIDString- public static java.lang.String getConnectionIDString(SessionInfo sessionInfo, java.lang.String threadName, java.lang.String threadID) Gets the connection ID as a string. If no data exists, i.e. source is null or -1, the string "<system>" is returned.- Parameters:
- sessionInfo- The session information.
- threadName- The name of the thread.
- threadID- The thread ID.
- Returns:
- A string delimited with double spaces.
 
 - getTabDelimitedConnectionIDString- public static java.lang.String getTabDelimitedConnectionIDString(SessionInfo sessionInfo, java.lang.String threadName, java.lang.String threadID) Gets the connection ID as a string. If no data exists, i.e. source is null or -1, the string "<system>" is returned. The parameters are tab delimited instead of filled out with spaces.- Parameters:
- sessionInfo- The session information.
- threadName- The name of the thread.
- threadID- The thread ID.
- Returns:
- A tab delimited string.
 
 - getConnectionIDString- public java.lang.String getConnectionIDString() Gets the connection ID as a string. If no data exists, i.e. source is -1, the string "<system>" is returned.- Returns:
- The ID as a string or "<system>" when no ID is present.
 
 - getIDString- public static java.lang.String getIDString(long id) Converts an ID into a string.- Parameters:
- id- The ID.
- Returns:
- The ID as a String with leading zero's.
 
 - doCommunicationBinaryTrace- public boolean doCommunicationBinaryTrace() Checks if Communication binary trace is on.- Returns:
- true if the trace option is selected.
 
 - doCommunicationVerboseTrace- public boolean doCommunicationVerboseTrace() Checks if Communication verbose trace is on.- Returns:
- true if the trace option is selected.
 
 - doConnectorBinaryTrace- public boolean doConnectorBinaryTrace() Checks if Connector binary trace is on.- Returns:
- true if the trace option is selected.
 
 - doConnectorVerboseTrace- public boolean doConnectorVerboseTrace() Checks if Connector verbose trace is on.- Returns:
- true if the trace option is selected.
 
 - doEndPointBinaryTrace- public boolean doEndPointBinaryTrace() Checks if EndPoint binary trace is on.- Returns:
- true if the trace option is selected.
 
 - doEndPointVerboseTrace- public boolean doEndPointVerboseTrace() Checks if EndPoint verbose trace is on.- Returns:
- true if the trace option is selected.
 
 - doAPIBinaryTrace- public boolean doAPIBinaryTrace() Checks if API binary trace is on.- Returns:
- true if the trace option is selected.
 
 - doAPIVerboseTrace- public boolean doAPIVerboseTrace() Checks if API verbose trace is on.- Returns:
- true if the trace option is selected.
 
 - setWorker- public void setWorker(Worker worker) Sets the worker for the session. This can only be done once. This method should only be used internally by the server.- Parameters:
- worker- The worker to assign to the session.
- Throws:
- java.lang.NullPointerException- If worker is null.
- java.lang.IllegalStateException- If a call to setWorker already has been made.
 
 - getWorker- public Worker getWorker() Gets the worker for the session.- Returns:
- The worker for the session or null if none is available or yet assigned.
 
 - getSessionID- public SessionID getSessionID() Gets the session ID.- Returns:
- The session ID or null if not set.
 
 - toString- public java.lang.String toString() Gets the string representation of the information in this instance.- Overrides:
- toStringin class- java.lang.Object
- Returns:
- A string representation of the information of the session instance.
 
 - dispose- public void dispose() Disposes of this instance and cleans up thread usage.
 - getReferenceLookupProperty- public IGProp<?> getReferenceLookupProperty() Gets the Session's reference look-up property.- Returns:
- The property to use for global look-ups with full references.