Package tigase.cluster
Class SessionManagerClustered
- java.lang.Object
-
- tigase.server.BasicComponent
-
- tigase.server.AbstractMessageReceiver
-
- tigase.server.xmppsession.SessionManager
-
- tigase.cluster.SessionManagerClustered
-
- All Implemented Interfaces:
ClusteredComponentIfc,SessionManagerClusteredIfc,Configurable,XMPPService,ConfigurationChangedAware,Initializable,RegistrarBean,MessageReceiver,PacketWriterWithTimeout,ServerComponent,SessionManagerHandler,StatisticsContainer,StatisticsContainerIfc,OnlineJidsReporter,VHostListener
@Bean(name="sess-man", parent=Kernel.class, active=true, exportable=true) @ConfigType({DefaultMode,SessionManagerMode}) @ClusterModeRequired(active=true) public class SessionManagerClustered extends SessionManager implements ClusteredComponentIfc, SessionManagerClusteredIfc
Class SessionManagerClusteredOld
Created: Tue Nov 22 07:07:11 2005- Author:
- Artur Hefczyc
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class tigase.server.xmppsession.SessionManager
SessionManager.DefaultHandlerProc, SessionManager.MessageArchive, SessionManager.ProcessorResultWriter, SessionManager.SessionCloseProc, SessionManager.SessionOpenProc, SessionManager.SMPacketWriter
-
Nested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension
-
Nested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout
PacketWriterWithTimeout.Handler
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCLUSTER_STRATEGY_VARstatic java.lang.StringMY_DOMAIN_NAME_PROP_KEYstatic java.lang.StringSTRATEGY_CLASS_PROP_KEYstatic java.lang.StringSTRATEGY_CLASS_PROP_VALstatic java.lang.StringSTRATEGY_CLASS_PROPERTYstatic intSYNC_MAX_BATCH_SIZE-
Fields inherited from class tigase.server.xmppsession.SessionManager
ADMIN_COMMAND_NODE, connectionsByFrom, messageArchive, sessionsByNodeId
-
Fields inherited from class tigase.server.AbstractMessageReceiver
HOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, SCHEDULER_THREADS_PROP_KEY, SECOND
-
Fields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManager
-
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EVENTBUS_CLASS_NAME, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK
-
Fields inherited from interface tigase.cluster.api.SessionManagerClusteredIfc
SESSION_FOUND_KEY
-
Fields inherited from interface tigase.server.xmppsession.SessionManagerHandler
COMMIT_HANDLER_KEY
-
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
-
-
Constructor Summary
Constructors Constructor Description SessionManagerClustered()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckSingleUserConnectionsLimit(XMPPResourceConnection conn)protected voidcloseSession(XMPPResourceConnection conn, boolean closeOnly)The method intercept user's disconnect event.booleancontainsJid(BareJID jid)The method checks whether the given JID is known to the installation, either user connected to local machine or any of the cluster nodes.voideveryHour()Utility method executed precisely every hour.voideveryMinute()Utility method executed precisely every minute.voideverySecond()Utility method executed precisely every second.booleanfastAddOutPacket(Packet packet)protected booleanfillRoutedUserSessionEvent(UserSessionEvent event)protected booleanfillRoutedUserSessionWithProcessorResultWriter(UserSessionEventWithProcessorResultWriter event)ComponentInfogetComponentInfo()Allows to obtain various informations about componentsJID[]getConnectionIdsForJid(BareJID jid)Retrieve all connection IDs (CIDs) for the given user.java.lang.StringgetDiscoDescription()Method returns description used for service discovery responses.voidgetStatistics(StatisticsList list)Method returns component statistics.ClusteringStrategyIfcgetStrategy()Returns active clustering strategy object.XMPPResourceConnectiongetXMPPResourceConnection(Packet p)java.util.concurrent.ConcurrentHashMap<JID,XMPPResourceConnection>getXMPPResourceConnections()java.util.concurrent.ConcurrentHashMap<BareJID,XMPPSession>getXMPPSessions()voidhandleLocalPacket(Packet packet, XMPPResourceConnection conn)voidhandleLogin(BareJID userId, XMPPResourceConnection conn)voidhandleLogout(BareJID userId, XMPPResourceConnection conn)voidhandleResourceBind(XMPPResourceConnection conn)booleanhasCompleteJidsInfo()Method checks whether the clustering strategy has a complete JIDs info.booleanhasXMPPResourceConnectionForConnectionJid(JID connJid)Method to check if there is XMPPResourceConnection instance for connection JID.voidinitBindings(javax.script.Bindings binds)Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoidonNodeConnected(JID jid)voidonNodeDisconnected(JID jid)intprocessingInThreads()Concurrency control method.intprocessingOutThreads()Concurrency control method.voidprocessPacket(Packet packet)This is the mainPacketprocessing method.voidprocessPacket(Packet packet, XMPPResourceConnection conn)voidprocessPresenceUpdate(XMPPSession session, Element packet)protected java.util.Collection<Subscription>routeUserSessionEvent(UserSessionEvent event, java.util.Collection<Subscription> subscriptions)voidsetClusterController(ClusterControllerIfc cl_controller)Set's the configures the cluster controller object for cluster communication and API.protected voidxmppStreamMoved(XMPPResourceConnection conn, JID oldConnId, JID newConnId)-
Methods inherited from class tigase.server.xmppsession.SessionManager
addOutPacket, addOutPackets, addPlugin, addTrusted, closeConnection, containsJidLocally, containsJidLocally, createUserSession, delTrusted, getDiscoCategoryType, getDiscoFeatures, getDiscoInfo, getDiscoItems, getMaxQueueSize, getOpenUsersConnectionsAmount, getOutFilters, getPostProcessors, getPreProcessors, getProcessors, getResourceConnection, getSession, getSingleUserConnectionsLimit, getXMPPResourceConnection, handleDomainChange, handlePresenceSet, handlesLocalDomains, hashCodeForPacket, initialize, isBrokenPacket, isLocalDomain, loginUserSession, nodeShutdown, processAdminsOrDomains, processCommand, register, registerNewSession, removePlugin, removePlugin, schedulerThreads, sendToAdmins, setAllPlugins, setName, setSchedulerThreads_size, setSmThreadsPool, skipPrivacy, start, stop, unregister
-
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, beanConfigurationChanged, clearRegexRoutings, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, release, removeRegexRouting, setCompId, setIncoming_filters, setOutgoing_filters, setParent, updateFiltersName
-
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface tigase.cluster.api.ClusteredComponentIfc
nodeConnected, nodeDisconnected
-
Methods inherited from interface tigase.conf.Configurable
getDefaults, setProperties
-
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
-
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName
-
Methods inherited from interface tigase.cluster.api.SessionManagerClusteredIfc
getComponentId, getNodesConnected
-
Methods inherited from interface tigase.server.xmppsession.SessionManagerHandler
handleDomainChange, handlePresenceSet, isLocalDomain
-
Methods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
-
-
-
Field Detail
-
CLUSTER_STRATEGY_VAR
public static final java.lang.String CLUSTER_STRATEGY_VAR
- See Also:
- Constant Field Values
-
MY_DOMAIN_NAME_PROP_KEY
public static final java.lang.String MY_DOMAIN_NAME_PROP_KEY
- See Also:
- Constant Field Values
-
STRATEGY_CLASS_PROP_KEY
public static final java.lang.String STRATEGY_CLASS_PROP_KEY
- See Also:
- Constant Field Values
-
STRATEGY_CLASS_PROP_VAL
public static final java.lang.String STRATEGY_CLASS_PROP_VAL
- See Also:
- Constant Field Values
-
STRATEGY_CLASS_PROPERTY
public static final java.lang.String STRATEGY_CLASS_PROPERTY
- See Also:
- Constant Field Values
-
SYNC_MAX_BATCH_SIZE
public static final int SYNC_MAX_BATCH_SIZE
- See Also:
- Constant Field Values
-
-
Method Detail
-
containsJid
public boolean containsJid(BareJID jid)
Description copied from interface:OnlineJidsReporterThe method checks whether the given JID is known to the installation, either user connected to local machine or any of the cluster nodes. False result does not mean the user is not connected. It means the method does not know anything about the JID. Some clustering strategies may not cache online users information.- Specified by:
containsJidin interfaceOnlineJidsReporter- Overrides:
containsJidin classSessionManager- Parameters:
jid- a user's JID for whom we query information.- Returns:
- true if the user is known as online to the installation, false if the method does not know.
-
everySecond
public void everySecond()
Description copied from class:AbstractMessageReceiverUtility method executed precisely every second. A component can overwrite the method to put own code to be executed at the regular intervals of time.
Note, no extensive calculations should happen in this method nor long lasting operations. It is essential that the method processing does not exceed 1 second. The overriding method must call the the super method first and only then run own code.- Overrides:
everySecondin classSessionManager
-
everyMinute
public void everyMinute()
Description copied from class:AbstractMessageReceiverUtility method executed precisely every minute. A component can overwrite the method to put own code to be executed at the regular intervals of time.
Note, no extensive calculations should happen in this method nor long lasting operations. It is essential that the method processing does not exceed 1 minute. The overriding method must call the the super method first and only then run own code.- Overrides:
everyMinutein classSessionManager
-
everyHour
public void everyHour()
Description copied from class:AbstractMessageReceiverUtility method executed precisely every hour. A component can overwrite the method to put own code to be executed at the regular intervals of time.
Note, no extensive calculations should happen in this method nor long lasting operations. It is essential that the method processing does not exceed 1 hour. The overriding method must call the the super method first and only then run own code.- Overrides:
everyHourin classAbstractMessageReceiver
-
fastAddOutPacket
public boolean fastAddOutPacket(Packet packet)
- Specified by:
fastAddOutPacketin interfaceSessionManagerClusteredIfc- Overrides:
fastAddOutPacketin classSessionManager
-
handleLocalPacket
public void handleLocalPacket(Packet packet, XMPPResourceConnection conn)
- Overrides:
handleLocalPacketin classSessionManager
-
handleLogin
public void handleLogin(BareJID userId, XMPPResourceConnection conn)
- Specified by:
handleLoginin interfaceSessionManagerHandler- Overrides:
handleLoginin classSessionManager
-
handleLogout
public void handleLogout(BareJID userId, XMPPResourceConnection conn)
- Specified by:
handleLogoutin interfaceSessionManagerHandler- Overrides:
handleLogoutin classSessionManager
-
handleResourceBind
public void handleResourceBind(XMPPResourceConnection conn)
- Specified by:
handleResourceBindin interfaceSessionManagerHandler- Overrides:
handleResourceBindin classSessionManager
-
checkSingleUserConnectionsLimit
protected void checkSingleUserConnectionsLimit(XMPPResourceConnection conn)
- Overrides:
checkSingleUserConnectionsLimitin classSessionManager
-
initBindings
public void initBindings(javax.script.Bindings binds)
Description copied from class:BasicComponentInitialize a mapping of key/value pairs which can be used in scripts loaded by the server- Overrides:
initBindingsin classSessionManager- Parameters:
binds- A mapping of key/value pairs, all of whose keys are Strings.
-
onNodeConnected
public void onNodeConnected(JID jid)
- Overrides:
onNodeConnectedin classBasicComponent
-
onNodeDisconnected
public void onNodeDisconnected(JID jid)
- Overrides:
onNodeDisconnectedin classBasicComponent
-
processingInThreads
public int processingInThreads()
Description copied from class:AbstractMessageReceiverConcurrency control method. Returns preferable number of threads set for this component.- Overrides:
processingInThreadsin classSessionManager- Returns:
- preferable number of threads set for this component.
-
processingOutThreads
public int processingOutThreads()
Description copied from class:AbstractMessageReceiverConcurrency control method. Returns preferable number of threads set for this component.- Overrides:
processingOutThreadsin classSessionManager- Returns:
- preferable number of threads set for this component.
-
processPacket
public void processPacket(Packet packet)
This is the mainPacketprocessing method. It is called concurrently from many threads so implementing it in thread save manner is essential. The method is called for each packet addressed to the component.
Please note, thePacketinstance may be processed by different parts of the server, different components or plugins at the same time. Therefore this is very important to tread thePacketinstance as unmodifiable object.
Processing in this method is asynchronous, therefore there is no result value. If there are some 'result' packets generated during processing, they should be passed back usingaddOutPacket(Packet)method.
This is a standard component method for processing packets. The method takes care of cases where the packet cannot be processed locally, in such a case it is forwarded to another node.- Overrides:
processPacketin classSessionManager- Parameters:
packet- to be processed
-
processPacket
public void processPacket(Packet packet, XMPPResourceConnection conn)
- Specified by:
processPacketin interfaceSessionManagerClusteredIfc- Overrides:
processPacketin classSessionManager
-
processPresenceUpdate
public void processPresenceUpdate(XMPPSession session, Element packet)
- Specified by:
processPresenceUpdatein interfaceSessionManagerClusteredIfc- Overrides:
processPresenceUpdatein classSessionManager
-
getComponentInfo
public ComponentInfo getComponentInfo()
Description copied from interface:ServerComponentAllows to obtain various informations about components- Specified by:
getComponentInfoin interfaceServerComponent- Overrides:
getComponentInfoin classBasicComponent- Returns:
- information about particular component
-
getConnectionIdsForJid
public JID[] getConnectionIdsForJid(BareJID jid)
Retrieve all connection IDs (CIDs) for the given user.
If the installation knows about user's JID, that he is connected to the system, then this method returns all user's connection IDs. As an optimization we can forward packets to all user's connections directly from a single node.- Specified by:
getConnectionIdsForJidin interfaceOnlineJidsReporter- Overrides:
getConnectionIdsForJidin classSessionManager- Parameters:
jid- a user's JID for whom we query information.- Returns:
- a list of all user's connection IDs.
-
getDiscoDescription
public java.lang.String getDiscoDescription()
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classSessionManager- Returns:
- description of a component
-
getStatistics
public void getStatistics(StatisticsList list)
Description copied from class:AbstractMessageReceiverMethod returns component statistics. Please note, the method can be called every second by the server monitoring system therefore no extensive or lengthy calculations are allowed. If there are some statistics requiring lengthy operations like database access they must haveLevel.FINESTassigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collectFINESTstatistics.
Level guard code looks like the example below:
if (list.checkLevel(Level.FINEST)) { // Some CPU intensive calculations or lengthy operations list.add(getName(), "Statistic description", stat_value, Level.FINEST); }This way you make sure your extensive operation is not executed every second by the monitoring system and does not affect the server performance.- Specified by:
getStatisticsin interfaceStatisticsContainerIfc- Overrides:
getStatisticsin classSessionManager- Parameters:
list- is aStatistcsListwhere all statistics are stored.
-
getStrategy
public ClusteringStrategyIfc getStrategy()
Returns active clustering strategy object.- Returns:
- active clustering strategy object.
-
getXMPPResourceConnection
public XMPPResourceConnection getXMPPResourceConnection(Packet p)
- Specified by:
getXMPPResourceConnectionin interfaceSessionManagerClusteredIfc- Overrides:
getXMPPResourceConnectionin classSessionManager
-
getXMPPResourceConnections
public java.util.concurrent.ConcurrentHashMap<JID,XMPPResourceConnection> getXMPPResourceConnections()
- Specified by:
getXMPPResourceConnectionsin interfaceSessionManagerClusteredIfc
-
getXMPPSessions
public java.util.concurrent.ConcurrentHashMap<BareJID,XMPPSession> getXMPPSessions()
- Specified by:
getXMPPSessionsin interfaceSessionManagerClusteredIfc
-
hasCompleteJidsInfo
public boolean hasCompleteJidsInfo()
Description copied from interface:OnlineJidsReporterMethod checks whether the clustering strategy has a complete JIDs info. That is whether the strategy knows about all users connected to all nodes. Some strategies may choose not to share this information among nodes, hence the methods returns false. Other may synchronize this information and can provide it to further optimize cluster traffic.- Specified by:
hasCompleteJidsInfoin interfaceOnlineJidsReporter- Overrides:
hasCompleteJidsInfoin classSessionManager- Returns:
- a true boolean value if the strategy has a complete information about all users connected to all cluster nodes.
-
hasXMPPResourceConnectionForConnectionJid
public boolean hasXMPPResourceConnectionForConnectionJid(JID connJid)
Description copied from interface:SessionManagerClusteredIfcMethod to check if there is XMPPResourceConnection instance for connection JID.- Specified by:
hasXMPPResourceConnectionForConnectionJidin interfaceSessionManagerClusteredIfc- Returns:
- true - if there is XMPPResourceConnection for connection JID
-
setClusterController
public void setClusterController(ClusterControllerIfc cl_controller)
Description copied from interface:ClusteredComponentIfcSet's the configures the cluster controller object for cluster communication and API.- Specified by:
setClusterControllerin interfaceClusteredComponentIfc- Overrides:
setClusterControllerin classBasicComponent- Parameters:
cl_controller- cluster controller object used for cluster communication
-
fillRoutedUserSessionWithProcessorResultWriter
@FillRoutedEvent protected boolean fillRoutedUserSessionWithProcessorResultWriter(UserSessionEventWithProcessorResultWriter event)
-
fillRoutedUserSessionEvent
@FillRoutedEvent protected boolean fillRoutedUserSessionEvent(UserSessionEvent event)
-
routeUserSessionEvent
@RouteEvent protected java.util.Collection<Subscription> routeUserSessionEvent(UserSessionEvent event, java.util.Collection<Subscription> subscriptions)
-
closeSession
protected void closeSession(XMPPResourceConnection conn, boolean closeOnly)
The method intercept user's disconnect event. On user disconnect the method takes a list of cluster nodes from the strategy and sends a notification to all those nodes about the event.- Overrides:
closeSessionin classSessionManager- Parameters:
conn-XMPPResourceConnectionto be closedcloseOnly- whether to perform additional processing before closing- See Also:
SessionManager.closeSession(tigase.xmpp.XMPPResourceConnection, boolean)
-
xmppStreamMoved
protected void xmppStreamMoved(XMPPResourceConnection conn, JID oldConnId, JID newConnId)
- Overrides:
xmppStreamMovedin classSessionManager
-
-