Package tigase.cluster.strategy
Class DefaultClusteringStrategy<E extends ConnectionRecordIfc>
- java.lang.Object
-
- tigase.cluster.strategy.DefaultClusteringStrategyAbstract<E>
-
- tigase.cluster.strategy.DefaultClusteringStrategy<E>
-
- Type Parameters:
E-
- All Implemented Interfaces:
ClusteringStrategyIfc<E>,StatisticHolder,OnlineJidsReporter
@Bean(name="strategy", parent=SessionManagerClustered.class, active=true) public class DefaultClusteringStrategy<E extends ConnectionRecordIfc> extends DefaultClusteringStrategyAbstract<E>
Created: May 13, 2009 9:53:44 AM- Version:
- $Rev$
- Author:
- Artur Hefczyc
-
-
Field Summary
Fields Modifier and Type Field Description static StringCONNECTION_IDstatic StringRESOURCEstatic StringSM_IDstatic StringUSER_IDstatic StringXMPP_SESSION_ID
-
Constructor Summary
Constructors Constructor Description DefaultClusteringStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ConnectionRecordIfcgetConnectionRecord(JID node, Map<String,String> data)Method takes the data received from other cluster node and creates a ConnectionRecord with all essential connection information.List<JID>getNodesForPacketForward(JID fromNode, Set<JID> visitedNodes, Packet packet)voidhandleLocalPacket(Packet packet, XMPPResourceConnection conn)voidhandleLocalResourceBind(XMPPResourceConnection conn)voidhandleLocalUserLogout(BareJID userId, XMPPResourceConnection conn)voidnodeConnected(JID node)This is a handler method which is called when a new node connects to the cluster.voidnodeDisconnected(JID node)This is a handler method which is called when a node disconnects from the cluster.protected Map<String,String>prepareConnectionParams(XMPPResourceConnection conn)A utility method used to prepare a Map of data with user session data before it can be sent over to another cluster node.-
Methods inherited from class tigase.cluster.strategy.DefaultClusteringStrategyAbstract
addCommandListener, containsJid, containsJidLocally, containsJidLocally, everyHour, everyMinute, everySecond, fireEvent, getConnectionIdsForJid, getConnectionRecord, getConnectionRecordInstance, getConnectionRecords, getDefaults, getInfo, getInternalCacheData, getNodesConnected, getSM, getStatistics, getStatistics, handleLocalPresenceSet, handleLocalUserChangedConnId, handleLocalUserLogin, hasCompleteJidsInfo, isSuitableForForward, processPacket, sendToNextNode, setClusterController, setProperties, setStatisticsPrefix, statisticExecutedIn, toString
-
-
-
-
Field Detail
-
CONNECTION_ID
public static final String CONNECTION_ID
- See Also:
- Constant Field Values
-
RESOURCE
public static final String RESOURCE
- See Also:
- Constant Field Values
-
SM_ID
public static final String SM_ID
- See Also:
- Constant Field Values
-
USER_ID
public static final String USER_ID
- See Also:
- Constant Field Values
-
XMPP_SESSION_ID
public static final String XMPP_SESSION_ID
- See Also:
- Constant Field Values
-
-
Method Detail
-
nodeConnected
public void nodeConnected(JID node)
Description copied from interface:ClusteringStrategyIfcThis is a handler method which is called when a new node connects to the cluster.- Parameters:
node- is a cluster node id.
-
nodeDisconnected
public void nodeDisconnected(JID node)
Description copied from interface:ClusteringStrategyIfcThis is a handler method which is called when a node disconnects from the cluster.- Parameters:
node- is a cluster node id.
-
handleLocalPacket
public void handleLocalPacket(Packet packet, XMPPResourceConnection conn)
- Specified by:
handleLocalPacketin interfaceClusteringStrategyIfc<E extends ConnectionRecordIfc>- Overrides:
handleLocalPacketin classDefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>
-
handleLocalResourceBind
public void handleLocalResourceBind(XMPPResourceConnection conn)
- Specified by:
handleLocalResourceBindin interfaceClusteringStrategyIfc<E extends ConnectionRecordIfc>- Overrides:
handleLocalResourceBindin classDefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>
-
handleLocalUserLogout
public void handleLocalUserLogout(BareJID userId, XMPPResourceConnection conn)
- Specified by:
handleLocalUserLogoutin interfaceClusteringStrategyIfc<E extends ConnectionRecordIfc>- Overrides:
handleLocalUserLogoutin classDefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>
-
getNodesForPacketForward
public List<JID> getNodesForPacketForward(JID fromNode, Set<JID> visitedNodes, Packet packet)
- Overrides:
getNodesForPacketForwardin classDefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>
-
prepareConnectionParams
protected Map<String,String> prepareConnectionParams(XMPPResourceConnection conn) throws NotAuthorizedException, NoConnectionIdException
A utility method used to prepare a Map of data with user session data before it can be sent over to another cluster node. This is supposed to contain all the user's session essential information which directly identify user's resource and network connection. This information allows to detect two different user's connection made for the same resource. This may happen if both connections are established to different nodes.- Parameters:
conn- is user's XMPPResourceConnection for which Map structure is prepare.- Returns:
- a Map structure with all user's connection essential data.
- Throws:
NoConnectionIdExceptionNotAuthorizedException
-
getConnectionRecord
protected ConnectionRecordIfc getConnectionRecord(JID node, Map<String,String> data)
Method takes the data received from other cluster node and creates a ConnectionRecord with all essential connection information. This might be used later to identify user's XMPPResourceConnection or use the clustering strategy API.- Parameters:
node-data-- Returns:
-
-