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

      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 and Description
    --- | ---
    `static String` | `CONNECTION_ID` Field description
    `static String` | `RESOURCE` Field description
    `static String` | `SM_ID` Field description
    `static String` | `USER_ID` Field description
    `static String` | `XMPP_SESSION_ID` Field description

    - ### Fields inherited from class tigase.cluster.strategy.DefaultClusteringStrategyAbstract

      `cluster, comp, prefix, sm`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultClusteringStrategy()` Constructs ...

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `List<JID>` | `getNodesForPacketForward(JID fromNode, Set<JID> visitedNodes, Packet packet)` Method description
    `void` | `handleLocalPacket(Packet packet, XMPPResourceConnection conn)` Method description
    `void` | `handleLocalResourceBind(XMPPResourceConnection conn)` Method description
    `void` | `handleLocalUserLogout(BareJID userId, XMPPResourceConnection conn)` Method description
    `void` | `nodeConnected(JID node)` This is a handler method which is called when a new node connects to the cluster.
    `void` | `nodeDisconnected(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, getConnectionIdsForJid, getConnectionRecord, getConnectionRecordInstance, getConnectionRecords, getDefaults, getInfo, getInternalCacheData, getNodesConnected, getSM, getStatistics, getStatistics, handleLocalPresenceSet, handleLocalUserChangedConnId, handleLocalUserLogin, hasCompleteJidsInfo, isSuitableForForward, processPacket, sendToNextNode, setClusterController, setProperties, setSessionManagerHandler, setStatisticsPrefix, statisticExecutedIn, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### CONNECTION_ID

          public static final String CONNECTION_ID

      Field description
      See Also:
        Constant Field Values

    - #### RESOURCE

          public static final String RESOURCE

      Field description
      See Also:
        Constant Field Values

    - #### SM_ID

          public static final String SM_ID

      Field description
      See Also:
        Constant Field Values

    - #### USER_ID

          public static final String USER_ID

      Field description
      See Also:
        Constant Field Values

    - #### XMPP_SESSION_ID

          public static final String XMPP_SESSION_ID

      Field description
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DefaultClusteringStrategy

          public DefaultClusteringStrategy()

      Constructs ...

  - ### Method Detail

    - #### nodeConnected

          public void nodeConnected(JID node)

      Description copied from interface: `ClusteringStrategyIfc`
      This 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: `ClusteringStrategyIfc`
      This 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)

      Description copied from interface: `ClusteringStrategyIfc`
      Method description
      Specified by:
        `handleLocalPacket` in interface `ClusteringStrategyIfc<E extends ConnectionRecordIfc>`
      Overrides:
        `handleLocalPacket` in class `DefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>`

    - #### handleLocalResourceBind

          public void handleLocalResourceBind(XMPPResourceConnection conn)

      Description copied from interface: `ClusteringStrategyIfc`
      Method description
      Specified by:
        `handleLocalResourceBind` in interface `ClusteringStrategyIfc<E extends ConnectionRecordIfc>`
      Overrides:
        `handleLocalResourceBind` in class `DefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>`

    - #### handleLocalUserLogout

          public void handleLocalUserLogout(BareJID userId,
                                            XMPPResourceConnection conn)

      Description copied from interface: `ClusteringStrategyIfc`
      Method description
      Specified by:
        `handleLocalUserLogout` in interface `ClusteringStrategyIfc<E extends ConnectionRecordIfc>`
      Overrides:
        `handleLocalUserLogout` in class `DefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>`

    - #### getNodesForPacketForward

          public List<JID> getNodesForPacketForward(JID fromNode,
                                                    Set<JID> visitedNodes,
                                                    Packet packet)

      Description copied from class: `DefaultClusteringStrategyAbstract`
      Method description
      Overrides:
        `getNodesForPacketForward` in class `DefaultClusteringStrategyAbstract<E extends ConnectionRecordIfc>`
      Returns:
        a value of `List<JID>`

    - #### 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:
        `NoConnectionIdException`
        `NotAuthorizedException`

    - #### 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:

Copyright © 2022 "Tigase, Inc.". All rights reserved.