Package tigase.server.xmppclient

## Class SeeOtherHostHashed

- java.lang.Object
- - tigase.server.xmppclient.SeeOtherHost
  - - tigase.server.xmppclient.SeeOtherHostHashed

- All Implemented Interfaces:
    `Initializable`, `Lifecycle`, `SeeOtherHostIfc`
  Direct Known Subclasses:
    `SeeOtherHostDB`, `SeeOtherHostDualIP`

      @Bean(name="seeOtherHost",
            parent=ClientConnectionManager.class,
            active=true)
      @ClusterModeRequired(active=true)
      public class SeeOtherHostHashed
      extends SeeOtherHost

  Default implementation for cluster environment of SeeOtherHostIfc returning redirect host based on the hash value of the user's JID
  Author:
    Wojtek

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class tigase.server.xmppclient.SeeOtherHost

      `SeeOtherHost.SeeOtherHostVHostItemExtension, SeeOtherHost.SeeOtherHostVHostItemExtensionProvider`

    - ### Nested classes/interfaces inherited from interface tigase.server.xmppclient.SeeOtherHostIfc

      `SeeOtherHostIfc.Phase`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.List<BareJID>` | `connectedNodes` |

    - ### Fields inherited from class tigase.server.xmppclient.SeeOtherHost

      `defaultHost, eventBus, REDIRECTION_ENABLED, vHostManager`

    - ### Fields inherited from interface tigase.server.xmppclient.SeeOtherHostIfc

      `CM_SEE_OTHER_HOST_ACTIVE, CM_SEE_OTHER_HOST_CLASS_PROP_DEF_VAL, CM_SEE_OTHER_HOST_CLASS_PROP_DEF_VAL_CLUSTER, CM_SEE_OTHER_HOST_CLASS_PROP_KEY, CM_SEE_OTHER_HOST_CLASS_PROPERTY, CM_SEE_OTHER_HOST_DEFAULT_HOST, CM_SEE_OTHER_HOST_DEFAULT_PORT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SeeOtherHostHashed()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `BareJID` | `findHostForJID​(BareJID jid, BareJID host)` | Finds an appropriate host for a given JID
    `protected void` | `nodeShutdown​(ShutdownEvent event)` |
    `void` | `setNodes​(java.util.List<JID> connectedNodes)` | Sets list of available nodes in cluster environment

    - ### Methods inherited from class tigase.server.xmppclient.SeeOtherHost

      `initialize, isEnabled, isNodeShutdown, setDefaultHost, start, stop`

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

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

    - ### Methods inherited from interface tigase.server.xmppclient.SeeOtherHostIfc

      `getStreamError, isRedirectionRequired`

- - ### Field Detail

    - #### connectedNodes

          protected java.util.List<BareJID> connectedNodes

  - ### Constructor Detail

    - #### SeeOtherHostHashed

          public SeeOtherHostHashed()

  - ### Method Detail

    - #### findHostForJID

          public BareJID findHostForJID​(BareJID jid,
                                        BareJID host)

      Description copied from interface: `SeeOtherHostIfc`
      Finds an appropriate host for a given JID
      Specified by:
        `findHostForJID` in interface `SeeOtherHostIfc`
      Overrides:
        `findHostForJID` in class `SeeOtherHost`
      Parameters:
        `jid` - is a user JID extracted from the stream open attributes
        `host` - is "this" host to which the user is now connected and which calls the method
      Returns:
        BareJID of possible host to which the user should connect or NULL

    - #### setNodes

          public void setNodes​(java.util.List<JID> connectedNodes)

      Description copied from interface: `SeeOtherHostIfc`
      Sets list of available nodes in cluster environment
      Specified by:
        `setNodes` in interface `SeeOtherHostIfc`
      Overrides:
        `setNodes` in class `SeeOtherHost`
      Parameters:
        `connectedNodes` - current list of nodes

    - #### nodeShutdown

          protected void nodeShutdown​(ShutdownEvent event)

      Overrides:
        `nodeShutdown` in class `SeeOtherHost`