Package tigase.server.xmppclient

# Class SeeOtherHost

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

All Implemented Interfaces:
  `Initializable`, `Lifecycle`, `SeeOtherHostIfc`

Direct Known Subclasses:
  `SeeOtherHostHashed`

@Bean(name="seeOtherHost", parent=ClientConnectionManager.class, active=true) @ClusterModeRequired(active=false) public class SeeOtherHost extends Object implements SeeOtherHostIfc, Initializable
Default and basic implementation of SeeOtherHost returning same host as the initial one

Author:
  Wojtek

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `SeeOtherHost.SeeOtherHostVHostItemExtension`
  `static class`
  `SeeOtherHost.SeeOtherHostVHostItemExtensionProvider`

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

  `SeeOtherHostIfc.Phase`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected List<BareJID>`
  `defaultHost`
  `protected EventBus`
  `eventBus`
  `static final String`
  `REDIRECTION_ENABLED`
  `protected VHostManagerIfc`
  `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
  `SeeOtherHost()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `BareJID`
  `findHostForJID(BareJID jid, BareJID host)`
  Finds an appropriate host for a given JID
  `void`
  `initialize()`
  Method will be called, when bean will be created, configured and ready to use.
  `boolean`
  `isEnabled(VHostItem vHost, SeeOtherHostIfc.Phase ph)`
  Performs check whether redirect is enabled in the given phase by default see-other-host redirect is only active in stream:open phase
  `protected boolean`
  `isNodeShutdown(BareJID jid)`
  `protected void`
  `nodeShutdown(ShutdownEvent event)`
  `void`
  `setDefaultHost(List<BareJID> defaultHost)`
  `void`
  `setNodes(List<JID> nodes)`
  Sets list of available nodes in cluster environment
  `void`
  `start()`
  `void`
  `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 Details

  - ### REDIRECTION_ENABLED

    public static final String REDIRECTION_ENABLED
    See Also:
      - Constant Field Values

  - ### defaultHost

    @ConfigField(desc="Default host to redirect to") protected List<BareJID> defaultHost

  - ### eventBus

    @Inject protected EventBus eventBus

  - ### vHostManager

    @Inject protected VHostManagerIfc vHostManager

- ## Constructor Details

  - ### SeeOtherHost

    public SeeOtherHost()

- ## Method Details

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

  - ### initialize

    public void initialize()
    Description copied from interface: `Initializable`
    Method will be called, when bean will be created, configured and ready to use.
    Specified by:
      `initialize` in interface `Initializable`

  - ### setDefaultHost

    public void setDefaultHost(List<BareJID> defaultHost)

  - ### setNodes

    public void setNodes(List<JID> nodes)
    Description copied from interface: `SeeOtherHostIfc`
    Sets list of available nodes in cluster environment
    Specified by:
      `setNodes` in interface `SeeOtherHostIfc`
    Parameters:
      `nodes` - current list of nodes

  - ### isEnabled

    public boolean isEnabled(VHostItem vHost, SeeOtherHostIfc.Phase ph)
    Description copied from interface: `SeeOtherHostIfc`
    Performs check whether redirect is enabled in the given phase by default see-other-host redirect is only active in stream:open phase
    Specified by:
      `isEnabled` in interface `SeeOtherHostIfc`
    Parameters:
      `vHost` - vHost for which redirection should be performed
      `ph` - phase for which the check should be performed
    Returns:
      boolean value indicating whether to perform or not redirect for the phase passed as argument

  - ### start

    public void start()
    Specified by:
      `start` in interface `Lifecycle`

  - ### stop

    public void stop()
    Specified by:
      `stop` in interface `Lifecycle`

  - ### isNodeShutdown

    protected boolean isNodeShutdown(BareJID jid)

  - ### nodeShutdown

    @HandleEvent protected void nodeShutdown(ShutdownEvent event)