tigase.vhosts

## Class VHostManager

- java.lang.Object
- - tigase.server.BasicComponent
  - - tigase.server.AbstractComponentRegistrator<VHostListener>
    - - tigase.vhosts.VHostManager

- All Implemented Interfaces:
    Configurable, XMPPService, ComponentRegistrator, ServerComponent, StatisticsContainer, VHostListener, VHostManagerIfc
  Direct Known Subclasses:
    VHostManagerClustered

      public class VHostManager
      extends AbstractComponentRegistrator<VHostListener>
      implements VHostManagerIfc, StatisticsContainer

  Describe class VHostManager here. Created: Fri Nov 21 14:28:20 2008
  Version:
    $Rev$
  Author:
    Artur Hefczyc

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ComponentRepository<VHostItem>` | `repo`
    `static String` | `VHOSTS_REPO_CLASS_PROP_KEY` Field description
    `static String` | `VHOSTS_REPO_CLASS_PROP_VAL` Field description
    `static String` | `VHOSTS_REPO_CLASS_PROPERTY` Field description

    - ### Fields inherited from class tigase.server.AbstractComponentRegistrator

      `components`

    - ### Fields inherited from class tigase.server.BasicComponent

      `admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager`

    - ### Fields inherited from interface tigase.conf.Configurable

      `ADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, SRECV_COMP_CLASS_NAME, SSEND_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK`

    - ### Fields inherited from interface tigase.disco.XMPPService

      `CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VHostManager()` Creates a new `VHostManager` instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addComponentDomain(String domain)` Method description
    `void` | `componentAdded(VHostListener component)` Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internal `components` collection.
    `void` | `componentRemoved(VHostListener component)` Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internal `components` collection.
    `String` | `generateSecret()`
    `List<tigase.xmpp.JID>` | `getAllVHosts()` Method description
    `ComponentRepository<VHostItem>` | `getComponentRepository()`
    `ServerComponent[]` | `getComponentsForLocalDomain(String domain)` The method returns an array with server components which can process packets for a given local domain.
    `ServerComponent[]` | `getComponentsForNonLocalDomain(String domain)` The method returns an array of server components which can process packets sent to non-local domain.
    `Map<String,Object>` | `getDefaults(Map<String,Object> params)` Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values.
    `tigase.xmpp.BareJID` | `getDefVHostItem()` Method description
    `String` | `getDiscoCategoryType()` Method description
    `String` | `getDiscoDescription()` Method description
    `void` | `getStatistics(StatisticsList list)`
    `VHostItem` | `getVHostItem(String domain)` Method description
    `VHostItem` | `getVHostItemDomainOrComponent(String domain)` Returns an object with all domain properties for a given domain or base domain if passed domain is name of subdomain used by component.
    `void` | `initBindings(Bindings binds)` Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
    `void` | `initializeRepository()`
    `boolean` | `isAnonymousEnabled(String domain)` This method checks whether anonymous login is enabled for a given domain.
    `boolean` | `isCorrectType(ServerComponent component)` Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class.
    `boolean` | `isLocalDomain(String domain)` Method description
    `boolean` | `isLocalDomainOrComponent(String domain)` Method description
    `void` | `removeComponentDomain(String domain)` Method description
    `void` | `setName(String name)` Method description
    `void` | `setProperties(Map<String,Object> properties)` Sets all configuration properties for the object.

    - ### Methods inherited from class tigase.server.AbstractComponentRegistrator

      `addComponent, deleteComponent, getComponent, newPacketId, release`

    - ### Methods inherited from class tigase.server.BasicComponent

      `canCallCommand, checkCommandAcl, getComponentId, getComponentInfo, getDefHostName, getDiscoCategory, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getScriptCommands, getScriptItems, getServiceEntity, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, isAdmin, isInitializationComplete, isNonAdminCommands, isSubdomain, processPacket, processScriptCommand, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity`

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

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

    - ### Methods inherited from interface tigase.server.ServerComponent

      `getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, release`

- - ### Field Detail

    - #### VHOSTS_REPO_CLASS_PROP_KEY

          public static final String VHOSTS_REPO_CLASS_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### VHOSTS_REPO_CLASS_PROP_VAL

          public static final String VHOSTS_REPO_CLASS_PROP_VAL

      Field description
      See Also:
        Constant Field Values

    - #### VHOSTS_REPO_CLASS_PROPERTY

          public static final String VHOSTS_REPO_CLASS_PROPERTY

      Field description
      See Also:
        Constant Field Values

    - #### repo

          protected ComponentRepository<VHostItem> repo

  - ### Constructor Detail

    - #### VHostManager

          public VHostManager()

      Creates a new `VHostManager` instance.

  - ### Method Detail

    - #### addComponentDomain

          public void addComponentDomain(String domain)

      Description copied from class: `BasicComponent`
      Method description
      Specified by:
        `addComponentDomain` in interface `VHostManagerIfc`
      Overrides:
        `addComponentDomain` in class `BasicComponent`
      Parameters:
        `domain` - is a component domain name added to the collection.

    - #### componentAdded

          public void componentAdded(VHostListener component)

      Description copied from class: `AbstractComponentRegistrator`
      Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internal `components` collection.
      Specified by:
        `componentAdded` in class `AbstractComponentRegistrator<VHostListener>`
      Parameters:
        `component` - is a reference to the component just added to the collection.

    - #### componentRemoved

          public void componentRemoved(VHostListener component)

      Description copied from class: `AbstractComponentRegistrator`
      Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internal `components` collection.
      Specified by:
        `componentRemoved` in class `AbstractComponentRegistrator<VHostListener>`
      Parameters:
        `component` - is a reference to the component removed from the collection.

    - #### initBindings

          public void initBindings(Bindings binds)

      Description copied from class: `BasicComponent`
      Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
      Overrides:
        `initBindings` in class `BasicComponent`
      Parameters:
        `binds` - A mapping of key/value pairs, all of whose keys are Strings.

    - #### removeComponentDomain

          public void removeComponentDomain(String domain)

      Description copied from class: `BasicComponent`
      Method description
      Specified by:
        `removeComponentDomain` in interface `VHostManagerIfc`
      Overrides:
        `removeComponentDomain` in class `BasicComponent`
      Parameters:
        `domain` - is a component domain name being removed from the collection.

    - #### getAllVHosts

          public List<tigase.xmpp.JID> getAllVHosts()

      Description copied from interface: `VHostManagerIfc`
      Method description
      Specified by:
        `getAllVHosts` in interface `VHostManagerIfc`

    - #### getComponentsForLocalDomain

          public ServerComponent[] getComponentsForLocalDomain(String domain)

      Description copied from interface: `VHostManagerIfc`
      The method returns an array with server components which can process packets for a given local domain. If the domain is not local `null` is returned. The given domain may also consist of: component name `ServerComponent.getName()` plus any local domain but only if the component returns `true` from method call: `VHostListener.handlesNameSubdomains()`
      Specified by:
        `getComponentsForLocalDomain` in interface `VHostManagerIfc`
      Parameters:
        `domain` - is a `String` with a domain name to check. It may by just a local domain or string created with component name and localdomain.
      Returns:
        an array with ServerComponents which can handle packets for a given domain or `null` if no component found for a given domain.

    - #### getComponentsForNonLocalDomain

          public ServerComponent[] getComponentsForNonLocalDomain(String domain)

      Description copied from interface: `VHostManagerIfc`
      The method returns an array of server components which can process packets sent to non-local domain. Most commonly there is only one such component: server-2-server connections manager. It is possible however there might be more such components. All of them will get the packet for processing.
      Specified by:
        `getComponentsForNonLocalDomain` in interface `VHostManagerIfc`
      Parameters:
        `domain` - is a `String` with a domain to check. At the moment this parameter is ignored. In the future it will be possible to assign a specific component for any non-local domain.
      Returns:
        an array with ServerComponents which can handle packets to non-local domains.

    - #### getDefaults

          public Map<String,Object> getDefaults(Map<String,Object> params)

      Description copied from interface: `Configurable`
      Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values. All the default parameters returned from this method are later passed to the `setProperties(...)` method. Some of them may have changed value if they have been overwritten in the server configuration. The configuration property value can be of any of the basic types: `int`, `long`, `boolean`, `String`.
      Specified by:
        `getDefaults` in interface `Configurable`
      Overrides:
        `getDefaults` in class `BasicComponent`
      Parameters:
        `params` - is a `Map` with some initial properties set for the starting up server. These parameters can be used as a hints to generate component's default configuration.
      Returns:
        a `Map` with the component default configuration.

    - #### getDefVHostItem

          public tigase.xmpp.BareJID getDefVHostItem()

      Description copied from class: `BasicComponent`
      Method description
      Specified by:
        `getDefVHostItem` in interface `VHostManagerIfc`
      Overrides:
        `getDefVHostItem` in class `BasicComponent`
      Returns:
        a value of `BareJID`

    - #### getDiscoCategoryType

          public String getDiscoCategoryType()

      Description copied from class: `BasicComponent`
      Method description
      Overrides:
        `getDiscoCategoryType` in class `BasicComponent`
      Returns:
        a value of `String`

    - #### getDiscoDescription

          public String getDiscoDescription()

      Description copied from class: `BasicComponent`
      Method description
      Overrides:
        `getDiscoDescription` in class `BasicComponent`
      Returns:
        a value of `String`

    - #### getStatistics

          public void getStatistics(StatisticsList list)

      Specified by:
        `getStatistics` in interface `StatisticsContainer`

    - #### getVHostItem

          public VHostItem getVHostItem(String domain)

      Description copied from class: `BasicComponent`
      Method description
      Specified by:
        `getVHostItem` in interface `VHostManagerIfc`
      Overrides:
        `getVHostItem` in class `BasicComponent`
      Parameters:
        `domain` - is a domain name
      Returns:
        a value of `VHostItem`

    - #### getVHostItemDomainOrComponent

          public VHostItem getVHostItemDomainOrComponent(String domain)

      Description copied from interface: `VHostManagerIfc`
      Returns an object with all domain properties for a given domain or base domain if passed domain is name of subdomain used by component.
      Specified by:
        `getVHostItemDomainOrComponent` in interface `VHostManagerIfc`
      Parameters:
        `domain` - is a domain name
      Returns:
        a VHostItem object with all domain properties.

    - #### isAnonymousEnabled

          public boolean isAnonymousEnabled(String domain)

      Description copied from interface: `VHostManagerIfc`
      This method checks whether anonymous login is enabled for a given domain. That is it checks whether this domains is local and anonymousEnabled parameter for this domain is set to true.
      Specified by:
        `isAnonymousEnabled` in interface `VHostManagerIfc`
      Parameters:
        `domain` - is a String with domain name to check.
      Returns:
        a boolean value indicating whether given domain is enabled for anonymous logins or not.

    - #### isCorrectType

          public boolean isCorrectType(ServerComponent component)

      Description copied from class: `AbstractComponentRegistrator`
      Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class. Result of the method determines whether the component can be added to the internal `components` collection.
      Specified by:
        `isCorrectType` in class `AbstractComponentRegistrator<VHostListener>`
      Parameters:
        `component` - is a reference to the component being checked.
      Returns:
        a `boolean` value of `true` if the component is of a correct type and `false` otherwise.

    - #### isLocalDomain

          public boolean isLocalDomain(String domain)

      Description copied from class: `BasicComponent`
      Method description
      Specified by:
        `isLocalDomain` in interface `VHostManagerIfc`
      Overrides:
        `isLocalDomain` in class `BasicComponent`
      Parameters:
        `domain` - is a String with domain name to check.
      Returns:
        a value of `boolean`

    - #### isLocalDomainOrComponent

          public boolean isLocalDomainOrComponent(String domain)

      Description copied from class: `BasicComponent`
      Method description
      Specified by:
        `isLocalDomainOrComponent` in interface `VHostManagerIfc`
      Overrides:
        `isLocalDomainOrComponent` in class `BasicComponent`
      Returns:
        a value of `boolean`

    - #### setName

          public void setName(String name)

      Description copied from interface: `ServerComponent`
      Method description
      Specified by:
        `setName` in interface `ServerComponent`
      Overrides:
        `setName` in class `BasicComponent`

    - #### setProperties

          public void setProperties(Map<String,Object> properties)
                             throws ConfigurationException

      Description copied from interface: `Configurable`
      Sets all configuration properties for the object.
      Specified by:
        `setProperties` in interface `Configurable`
      Overrides:
        `setProperties` in class `BasicComponent`
      Parameters:
        `properties` - `Map` with the configuration
      Throws:
        `ConfigurationException` - - if setting configuration will fail which will make it unable to work

    - #### initializeRepository

          public void initializeRepository()
                                    throws TigaseDBException

      Throws:
        `TigaseDBException`

    - #### generateSecret

          public String generateSecret()

    - #### getComponentRepository

          public ComponentRepository<VHostItem> getComponentRepository()

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