Package tigase.server.xmppclient

# Class SeeOtherHostDualIP

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

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

@Bean(name="seeOtherHost", parent=ClientConnectionManager.class, active=true) @ClusterModeRequired(active=true) public class SeeOtherHostDualIP extends SeeOtherHostHashed implements Initializable, RegistrarBean, UnregisterAware
Extended implementation of SeeOtherHost using redirect information from database based on cluster_nodes table.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `SeeOtherHostDualIP.DualIPRepository<T extends DataSource>`
  `static class`
  `SeeOtherHostDualIP.DualIPRepositoryWrapper`

  ## 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
  `static final String`
  `SEE_OTHER_HOST_DATA_SOURCE_KEY`
  `static final String`
  `SEE_OTHER_HOST_DATA_SOURCE_VALUE`
  `static final String`
  `SEE_OTHER_HOST_DB_URL_KEY`
  `static final String`
  `SEE_OTHER_HOST_FALLBACK_REDIRECTION_KEY`

  ### Fields inherited from class tigase.server.xmppclient.SeeOtherHostHashed

  `connectedNodes`

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

  `defaultHost, 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
  `SeeOtherHostDualIP()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `beforeUnregister()`
  Method called before bean unregister.
  `void`
  `clusterRepoItemEvent(ClusterRepoItemEvent event)`
  `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`
  `isRedirectionRequired(BareJID defaultHost, BareJID redirectionHost)`
  Method validates whether a redirection for a particular hostname and resulting redirection hastname is required
  `void`
  `register(Kernel kernel)`
  Method called when bean is being registered allowing developer to programatically register other beans.
  `protected void`
  `reloadRedirection()`
  `void`
  `setNodes(List<JID> connectedNodes)`
  Sets list of available nodes in cluster environment
  `void`
  `unregister(Kernel kernel)`
  Method called while bean is being unregistered.

  ### Methods inherited from class tigase.server.xmppclient.SeeOtherHostHashed

  `nodeShutdown`

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

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

- ## Field Details

  - ### SEE_OTHER_HOST_FALLBACK_REDIRECTION_KEY

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

  - ### SEE_OTHER_HOST_DATA_SOURCE_KEY

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

  - ### SEE_OTHER_HOST_DATA_SOURCE_VALUE

    public static final String SEE_OTHER_HOST_DATA_SOURCE_VALUE

  - ### SEE_OTHER_HOST_DB_URL_KEY

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

- ## Constructor Details

  - ### SeeOtherHostDualIP

    public SeeOtherHostDualIP()

- ## 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`
    Overrides:
      `findHostForJID` in class `SeeOtherHostHashed`
    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

  - ### clusterRepoItemEvent

    @HandleEvent public void clusterRepoItemEvent(ClusterRepoItemEvent event)

  - ### setNodes

    public void setNodes(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 `SeeOtherHostHashed`
    Parameters:
      `connectedNodes` - current list of nodes

  - ### isRedirectionRequired

    public boolean isRedirectionRequired(BareJID defaultHost, BareJID redirectionHost)
    Description copied from interface: `SeeOtherHostIfc`
    Method validates whether a redirection for a particular hostname and resulting redirection hastname is required
    Specified by:
      `isRedirectionRequired` in interface `SeeOtherHostIfc`
    Parameters:
      `defaultHost` - default hostname of the particular machine
      `redirectionHost` - destination hostname
    Returns:
      `true` if the redirection is required, otherwise `false`

  - ### register

    public void register(Kernel kernel)
    Description copied from interface: `RegistrarBean`
    Method called when bean is being registered allowing developer to programatically register other beans.
    Specified by:
      `register` in interface `RegistrarBean`
    Parameters:
      `kernel` - - instance from local scope

  - ### unregister

    public void unregister(Kernel kernel)
    Description copied from interface: `RegistrarBean`
    Method called while bean is being unregistered.
    Specified by:
      `unregister` in interface `RegistrarBean`
    Parameters:
      `kernel` - - instance from local scope

  - ### 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`
    Overrides:
      `initialize` in class `SeeOtherHost`

  - ### beforeUnregister

    public void beforeUnregister()
    Description copied from interface: `UnregisterAware`
    Method called before bean unregister.
    Specified by:
      `beforeUnregister` in interface `UnregisterAware`

  - ### reloadRedirection

    protected void reloadRedirection()