Package tigase.vhosts

Class VHostManager

All Implemented Interfaces:
ClusteredComponentIfc, Configurable, XMPPService, ConfigurationChangedAware, Initializable, RegistrarBean, ComponentRegistrator, ServerComponent, StatisticsContainer, StatisticsContainerIfc, VHostListener, VHostManagerIfc

Describe class VHostManager here.
Created: Fri Nov 21 14:28:20 2008
Author:
Artur Hefczyc
  • Field Details

  • Constructor Details

    • VHostManager

      public VHostManager()
      Creates a new VHostManager instance.
  • Method Details

    • addComponentDomain

      public void addComponentDomain(String domain)
      Description copied from interface: VHostManagerIfc
      Adds a component domain to the collection of local component domains. This is mainly needed/used by an external components connecting to the server and binding hostnames. Normally the s2s component have no way of knowing about this new and temporary domains handled by the server and would refuse all connections for these domains. Adding them to a collection of component domains allows the s2s to detect them and accept connection for them.
      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 interface: VHostManagerIfc
      Removes a domain previously registered by a component. It should not be normally used.
      Specified by:
      removeComponentDomain in interface VHostManagerIfc
      Overrides:
      removeComponentDomain in class BasicComponent
      Parameters:
      domain - is a component domain name being removed from the collection.
    • 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
    • getAllVHosts

      public List<JID> getAllVHosts()
      Description copied from interface: VHostManagerIfc
      Method returns a list of all hosted VHosts.
      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.
    • getDefVHostItem

      public BareJID getDefVHostItem()
      Description copied from interface: VHostManagerIfc
      Method getDefVHostItem returns a default VHost for the installation. In most cases this is the first VHost defined in the server configuration.
      Specified by:
      getDefVHostItem in interface VHostManagerIfc
      Overrides:
      getDefVHostItem in class BasicComponent
      Returns:
      a BareJID value of the default VHost for the installation.
    • getDiscoCategoryType

      public String getDiscoCategoryType()
      Description copied from class: BasicComponent
      Method returns component category type used for service discovery responses.
      Overrides:
      getDiscoCategoryType in class BasicComponent
      Returns:
      category type of a component
    • getDiscoDescription

      public String getDiscoDescription()
      Description copied from class: BasicComponent
      Method returns description used for service discovery responses.
      Overrides:
      getDiscoDescription in class BasicComponent
      Returns:
      description of a component
    • getStatistics

      public void getStatistics(StatisticsList list)
      Specified by:
      getStatistics in interface StatisticsContainerIfc
      Overrides:
      getStatistics in class BasicComponent
    • getVHostItem

      public VHostItem getVHostItem(String domain)
      Description copied from interface: VHostManagerIfc
      Returns an object with all domain properties for given domain.
      Specified by:
      getVHostItem in interface VHostManagerIfc
      Overrides:
      getVHostItem in class BasicComponent
      Parameters:
      domain - is a domain name
      Returns:
      a VHostItem object with all domain properties.
    • 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 interface: VHostManagerIfc
      This method checks whether given domain is server by this server instance. That is if this domain is local to this server installation. It doesn't check however whether the domain is disabled or enabled. It only checks if tthe list of local domains contains this virtual host.
      Specified by:
      isLocalDomain in interface VHostManagerIfc
      Overrides:
      isLocalDomain in class BasicComponent
      Parameters:
      domain - is a String with domain name to check.
      Returns:
      a boolean value indicating whether given domain is local or not.
    • isLocalDomainOrComponent

      public boolean isLocalDomainOrComponent(String domain)
      Description copied from interface: VHostManagerIfc
      Method check if domains is locally hosted as a vhost or a component of a vhost.
      Specified by:
      isLocalDomainOrComponent in interface VHostManagerIfc
      Overrides:
      isLocalDomainOrComponent in class BasicComponent
      Returns:
      true - if domain is locally hosted as a vhost of a component of a vhost.
    • setName

      public void setName(String name)
      Description copied from interface: ServerComponent
      Method used to assign component name (localpart of the component)
      Specified by:
      setName in interface ServerComponent
      Overrides:
      setName in class BasicComponent
      Parameters:
      name - to be assigned
    • initializeRepository

      public void initializeRepository() throws TigaseDBException
      Throws:
      TigaseDBException
    • generateSecret

      public String generateSecret()
    • getComponentRepository

      public ComponentRepository<VHostItem> getComponentRepository()