Package tigase.server.xmppsession
Class SessionManager
java.lang.Object
tigase.server.BasicComponent
tigase.server.AbstractMessageReceiver
tigase.server.xmppsession.SessionManager
- All Implemented Interfaces:
ClusteredComponentIfc,Configurable,XMPPService,ConfigurationChangedAware,Initializable,RegistrarBean,MessageReceiver,PacketWriterWithTimeout,ServerComponent,SessionManagerHandler,StatisticsContainer,StatisticsContainerIfc,OnlineJidsReporter,VHostListener
- Direct Known Subclasses:
SessionManagerClustered
@Bean(name="sess-man",
parent=Kernel.class,
active=true,
exportable=true)
@ConfigType({DefaultMode,SessionManagerMode})
@ClusterModeRequired(active=false)
public class SessionManager
extends AbstractMessageReceiver
implements Configurable, SessionManagerHandler, OnlineJidsReporter, RegistrarBean
Class SessionManager
Created: Tue Nov 22 07:07:11 2005
Created: Tue Nov 22 07:07:11 2005
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic interfacestatic interfacestatic classstatic classstatic classNested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtensionNested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout
PacketWriterWithTimeout.Handler -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected ConcurrentHashMap<JID, XMPPResourceConnection> A Map with connectionID as a key and an object with all the user connection data as a valueprotected SessionManager.MessageArchiveprotected ConcurrentHashMap<BareJID, XMPPSession> A Map with bare user JID as a key and a user session object as a value.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, SECONDFields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManagerFields 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_ACKFields inherited from interface tigase.server.xmppsession.SessionManagerHandler
COMMIT_HANDLER_KEYFields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddOutPacket(Packet packet) protected voidaddOutPackets(Packet packet, XMPPResourceConnection conn, Queue<Packet> results) addPlugin(XMPPImplIfc proc) protected booleanaddTrusted(JID jid) protected voidprotected voidcloseConnection(XMPPResourceConnection connection, JID connectionId, String userId, boolean closeOnly) protected voidcloseSession(XMPPResourceConnection conn, boolean closeOnly) 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.booleanThe method checks whether the given JID is known to local cluster node as connected user.booleancontainsJidLocally(JID jid) The method checks whether the given JID is known to local cluster node as connected user.protected XMPPResourceConnectioncreateUserSession(JID conn_id, String domain) protected booleandelTrusted(JID jid) voidUtility method executed precisely every hour.voidUtility method executed precisely every minute.voidUtility method executed precisely every second.protected booleanfastAddOutPacket(Packet packet) JID[]Retrieve all connection IDs (CIDs) for the given user.Method returns component category type used for service discovery responses.Method returns description used for service discovery responses.getDiscoFeatures(JID from) Method returns list of features provided by this component for provided JID.getDiscoInfo(String node, JID jid, JID from) Returns service discovery info for the component.getDiscoItems(String node, JID jid, JID from) Returns service discovery items for the component.protected IntegergetMaxQueueSize(int def) intgetResourceConnection(JID jid) protected XMPPSessiongetSession(BareJID jid) voidgetStatistics(StatisticsList list) Method returns component statistics.protected XMPPResourceConnectionprotected XMPPResourceConnectiongetXMPPResourceConnection(JID connId) voidvoidhandleDomainChange(String domain, XMPPResourceConnection conn) voidhandleLocalPacket(Packet packet, XMPPResourceConnection conn) voidhandleLogin(BareJID userId, XMPPResourceConnection conn) voidhandleLogout(BareJID userId, XMPPResourceConnection conn) voidvoidbooleanIndicates whether the component accepts packets to all local domains.booleanMethod checks whether the clustering strategy has a complete JIDs info.inthashCodeForPacket(Packet packet) This method decides how incoming packets are distributed among processing threads.voidinitBindings(Bindings binds) Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoidMethod will be called, when bean will be created, configured and ready to use.protected booleanbooleanisLocalDomain(String domain, boolean includeComponents) loginUserSession(JID conn_id, String domain, BareJID user_id, String resource, String xmpp_sessionId, boolean tmpSession) protected voidnodeShutdown(ShutdownEvent event) protected booleanprocessAdminsOrDomains(Packet packet) protected booleanprocessCommand(Packet pc) intConcurrency control method.intConcurrency control method.voidprocessPacket(Packet packet) This is the mainPacketprocessing method.protected voidprocessPacket(Packet packet, XMPPResourceConnection conn) protected voidprocessPresenceUpdate(XMPPSession session, Element packet) voidMethod called when bean is being registered allowing developer to programatically register other beans.protected voidregisterNewSession(BareJID userId, XMPPResourceConnection conn) voidremovePlugin(String plug_id) voidremovePlugin(XMPPImplIfc proc) intMethod returns default number of threads used by SchedulerExecutorServiceprotected voidsendToAdmins(Packet packet) voidsetAllPlugins(ConcurrentSkipListSet<XMPPImplIfc> allPlugins) voidMethod used to assign component name (localpart of the component)voidsetSchedulerThreads_size(int size) voidsetSmThreadsPool(String val) booleanvoidstart()voidstop()voidunregister(Kernel kernel) Method called while bean is being unregistered.protected voidxmppStreamMoved(XMPPResourceConnection conn, JID oldConnId, JID newConnId, String sendResponse) 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, updateFiltersNameMethods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getComponentInfo, 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, onNodeConnected, onNodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntityMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tigase.conf.Configurable
getDefaults, setPropertiesMethods inherited from interface tigase.server.MessageReceiver
getDefHostNameMethods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, releaseMethods inherited from interface tigase.server.xmppsession.SessionManagerHandler
getComponentIdMethods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
Field Details
-
ADMIN_COMMAND_NODE
- See Also:
-
connectionsByFrom
A Map with connectionID as a key and an object with all the user connection data as a value -
sessionsByNodeId
A Map with bare user JID as a key and a user session object as a value. -
messageArchive
-
-
Constructor Details
-
SessionManager
public SessionManager()
-
-
Method Details
-
addOutPacket
- Overrides:
addOutPacketin classAbstractMessageReceiver
-
addPlugin
public XMPPImplIfc addPlugin(XMPPImplIfc proc) throws ClassNotFoundException, InstantiationException, IllegalAccessException, TigaseDBException -
containsJid
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- 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.
-
containsJidLocally
Description copied from interface:OnlineJidsReporterThe method checks whether the given JID is known to local cluster node as connected user. False result means that given JID is not connected to local cluster node but it may be connected to other cluster node. Result of this method should be independent of used clustering strategy.- Specified by:
containsJidLocallyin interfaceOnlineJidsReporter- Parameters:
jid- a user's JID for whom we query information- Returns:
- true if user is known as connected to local cluster node, false if it is not connected to local node
-
containsJidLocally
Description copied from interface:OnlineJidsReporterThe method checks whether the given JID is known to local cluster node as connected user. False result means that given JID is not connected to local cluster node but it may be connected to other cluster node. Result of this method should be independent of used clustering strategy.- Specified by:
containsJidLocallyin interfaceOnlineJidsReporter- Parameters:
jid- a user's JID for whom we query information- Returns:
- true if user is known as connected to local cluster node, false if it is not connected to local node
-
handleLocalPacket
-
handleLogin
- Specified by:
handleLoginin interfaceSessionManagerHandler
-
handleLogout
- Specified by:
handleLogoutin interfaceSessionManagerHandler
-
handlePresenceSet
- Specified by:
handlePresenceSetin interfaceSessionManagerHandler
-
handleResourceBind
- Specified by:
handleResourceBindin interfaceSessionManagerHandler
-
handleDisconnectUser
-
checkSingleUserConnectionsLimit
-
handlesLocalDomains
public boolean handlesLocalDomains()Description copied from interface:VHostListenerIndicates whether the component accepts packets to all local domains. The best example would be SM component which usually handles all requests sent to any local domain.- Specified by:
handlesLocalDomainsin interfaceVHostListener- Overrides:
handlesLocalDomainsin classBasicComponent- Returns:
- 'true' if the component accepts packets to local domains 'false' otherwise.
-
hashCodeForPacket
Description copied from class:AbstractMessageReceiverThis method decides how incoming packets are distributed among processing threads. Different components needs different distribution to efficient use all threads and avoid packets re-ordering.
If there are N processing threads, packets are distributed among threads using following code:
int threadNo = Math.abs(hashCodeForPacket(packet) % N);
For a PubSub component, for example, a better packets distribution would be based on the PubSub channel name, for SM a better distribution is based on the destination address, etc....- Overrides:
hashCodeForPacketin classAbstractMessageReceiver- Parameters:
packet- is aPacketwhich needs to be processed by some thread.- Returns:
- a hash code generated for the input thread.
-
initBindings
Description copied from class:BasicComponentInitialize a mapping of key/value pairs which can be used in scripts loaded by the server- Overrides:
initBindingsin classBasicComponent- Parameters:
binds- A mapping of key/value pairs, all of whose keys are Strings.
-
processingInThreads
public int processingInThreads()Description copied from class:AbstractMessageReceiverConcurrency control method. Returns preferable number of threads set for this component.- Overrides:
processingInThreadsin classAbstractMessageReceiver- 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 classAbstractMessageReceiver- Returns:
- preferable number of threads set for this component.
-
processPacket
Description copied from class:AbstractMessageReceiverThis 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.- Specified by:
processPacketin classAbstractMessageReceiver- Parameters:
packet- is an instance of thePacketclass passed for processing.
-
removePlugin
-
removePlugin
-
skipPrivacy
public boolean skipPrivacy() -
start
public void start()- Specified by:
startin interfaceMessageReceiver- Overrides:
startin classAbstractMessageReceiver
-
stop
public void stop()- Overrides:
stopin classAbstractMessageReceiver
-
getConnectionIdsForJid
Description copied from interface:OnlineJidsReporterRetrieve all connection IDs (CIDs) for the given user.- Specified by:
getConnectionIdsForJidin interfaceOnlineJidsReporter- Parameters:
jid- id of the user for which we want to retrieve the list.- Returns:
- an array of
JIDcontaining all Connection IDs (CIDs) for the given user.
-
getDiscoCategoryType
Description copied from class:BasicComponentMethod returns component category type used for service discovery responses.- Overrides:
getDiscoCategoryTypein classBasicComponent- Returns:
- category type of a component
-
getDiscoDescription
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classBasicComponent- Returns:
- description of a component
-
getDiscoFeatures
Description copied from class:BasicComponentMethod returns list of features provided by this component for provided JID.- Specified by:
getDiscoFeaturesin interfaceXMPPService- Overrides:
getDiscoFeaturesin classBasicComponent- Parameters:
from- a request sender address. Some service disco elements are meant to be available only to system administrarors. The component is responsible to check whether the sender is the component administrator and return results appropriate.- Returns:
- list of features
-
getDiscoInfo
Description copied from interface:XMPPServiceReturns service discovery info for the component. If the jid is null then this is info for the top level request. SM may return disco info on the top level. Other components should not.- Specified by:
getDiscoInfoin interfaceXMPPService- Overrides:
getDiscoInfoin classBasicComponent- Parameters:
node- is service discovery node for which the request is made. Is normally null for the component top level request.jid- is the jid to which the request has been made.from- is the request sender address. Some service discovery information is only meant for administrators.- Returns:
- returns an XML Element with service discovery data.
-
getDiscoItems
Description copied from interface:XMPPServiceReturns service discovery items for the component. If the JID is null then this is request for the top level request. SM may return disco items on the top level, other components should just return it's top level service discovery item for null node.- Specified by:
getDiscoItemsin interfaceXMPPService- Overrides:
getDiscoItemsin classBasicComponent- Parameters:
node- is a service discovery node for which the request has been made.jid- is the jid to which the request has been made.from- is the request sender address. Some service discovery information is only meant for administrators.- Returns:
- a list of service discovery items for this component or the component itself disco item for the top level request.
-
getResourceConnection
-
getOpenUsersConnectionsAmount
public int getOpenUsersConnectionsAmount() -
getSingleUserConnectionsLimit
-
getStatistics
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 classAbstractMessageReceiver- Parameters:
list- is aStatistcsListwhere all statistics are stored.
-
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- Returns:
- a true boolean value if the strategy has a complete information about all users connected to all cluster nodes.
-
isLocalDomain
- Specified by:
isLocalDomainin interfaceSessionManagerHandler
-
setName
Description copied from interface:ServerComponentMethod used to assign component name (localpart of the component)- Specified by:
setNamein interfaceServerComponent- Overrides:
setNamein classAbstractMessageReceiver- Parameters:
name- to be assigned
-
setAllPlugins
-
setSmThreadsPool
-
initialize
public void initialize()Description copied from interface:InitializableMethod will be called, when bean will be created, configured and ready to use.- Specified by:
initializein interfaceInitializable- Overrides:
initializein classBasicComponent
-
setSchedulerThreads_size
public void setSchedulerThreads_size(int size) - Overrides:
setSchedulerThreads_sizein classAbstractMessageReceiver
-
schedulerThreads
public int schedulerThreads()Description copied from class:AbstractMessageReceiverMethod returns default number of threads used by SchedulerExecutorService- Overrides:
schedulerThreadsin classAbstractMessageReceiver- Returns:
- a value of
int
-
register
Description copied from interface:RegistrarBeanMethod called when bean is being registered allowing developer to programatically register other beans.- Specified by:
registerin interfaceRegistrarBean- Parameters:
kernel- - instance from local scope
-
unregister
Description copied from interface:RegistrarBeanMethod called while bean is being unregistered.- Specified by:
unregisterin interfaceRegistrarBean- Parameters:
kernel- - instance from local scope
-
getProcessors
-
getPreProcessors
-
getPostProcessors
-
getOutFilters
-
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 classAbstractMessageReceiver
-
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 classAbstractMessageReceiver
-
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
-
handleDomainChange
- Specified by:
handleDomainChangein interfaceSessionManagerHandler
-
addOutPackets
-
addTrusted
-
closeConnection
protected void closeConnection(XMPPResourceConnection connection, JID connectionId, String userId, boolean closeOnly) -
closeSession
-
createUserSession
protected XMPPResourceConnection createUserSession(JID conn_id, String domain) throws TigaseStringprepException - Throws:
TigaseStringprepException
-
delTrusted
-
fastAddOutPacket
-
loginUserSession
-
processAdminsOrDomains
-
processCommand
-
processPacket
-
processPresenceUpdate
-
registerNewSession
-
sendToAdmins
-
nodeShutdown
-
xmppStreamMoved
protected void xmppStreamMoved(XMPPResourceConnection conn, JID oldConnId, JID newConnId, String sendResponse) -
getMaxQueueSize
- Overrides:
getMaxQueueSizein classAbstractMessageReceiver
-
getSession
-
getXMPPResourceConnection
-
getXMPPResourceConnection
-
isBrokenPacket
-