Package tigase.server

## Class BasicComponent

- java.lang.Object
- - tigase.server.BasicComponent

- All Implemented Interfaces:
    `ClusteredComponentIfc`, `Configurable`, `XMPPService`, `ConfigurationChangedAware`, `Initializable`, `ServerComponent`, `VHostListener`
  Direct Known Subclasses:
    `AbstractComponentRegistrator`, `AbstractMessageReceiver`

      public class BasicComponent
      extends java.lang.Object
      implements Configurable, XMPPService, VHostListener, ClusteredComponentIfc, Initializable, ConfigurationChangedAware

  Created: Oct 17, 2009 7:49:05 PM
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `BasicComponent.ServerInfoVHostItemExtension` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.concurrent.ConcurrentSkipListSet<BareJID>` | `admins` |
    `static java.lang.String` | `ALL_PROP_KEY` |
    `static java.lang.String` | `COMMAND_PROP_NODE` |
    `protected java.util.Map<java.lang.String,​CommandIfc>` | `scriptCommands` |
    `protected javax.script.ScriptEngineManager` | `scriptEngineManager` |
    `static java.lang.String` | `SCRIPTS_DIR_PROP_DEF` |
    `static java.lang.String` | `SCRIPTS_DIR_PROP_KEY` |
    `protected java.util.concurrent.ConcurrentSkipListSet<java.lang.String>` | `trusted` |
    `protected VHostManagerIfc` | `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_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_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, EVENTBUS_CLASS_NAME, 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, 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 | Description
    --- | ---
    `BasicComponent()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addComponentDomain​(java.lang.String domain)` |
    `void` | `beanConfigurationChanged​(java.util.Collection<java.lang.String> changedFields)` | Method called when configuration was applied to bean.
    `boolean` | `canCallCommand​(JID jid, java.lang.String commandId)` | Method checks if following adhoc command can execute from this JID
    `boolean` | `canCallCommand​(JID jid, java.lang.String domain, java.lang.String commandId)` |
    `boolean` | `checkCommandAcl​(JID jid, java.lang.String domain, java.util.Set<CmdAcl> acl)` | Check if entity with JID is allowed ot execute command with passed access control list.
    `boolean` | `checkCommandAcl​(JID jid, java.util.Set<CmdAcl> acl)` | Check if entity with JID is allowed ot execute command with passed access control list.
    `protected javax.script.ScriptEngineManager` | `createScriptEngineManager()` |
    `void` | `everyHour()` |
    `void` | `everyMinute()` |
    `void` | `everySecond()` |
    `JID` | `getComponentId()` | Method returns component jid in form of the component name followed by server hostname as a domain.
    `ComponentInfo` | `getComponentInfo()` | Allows to obtain various informations about components
    `java.util.Map<java.lang.String,​java.lang.Object>` | `getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> params)` | Deprecated.
    `BareJID` | `getDefHostName()` |
    `BareJID` | `getDefVHostItem()` |
    `java.lang.String` | `getDiscoCategory()` | Method returns category of a component used for service discovery responses.
    `java.lang.String` | `getDiscoCategoryType()` | Method returns component category type used for service discovery responses.
    `java.lang.String` | `getDiscoDescription()` | Method returns description used for service discovery responses.
    `Element` | `getDiscoExtensionsForm​(java.lang.String domain)` |
    `java.util.List<Element>` | `getDiscoFeatures()` | Method returns list of features provided by this component.
    `java.util.List<Element>` | `getDiscoFeatures​(JID from)` | Method returns list of features provided by this component for provided JID.
    `Element` | `getDiscoInfo​(java.lang.String node, JID jid, JID from)` | Returns service discovery info for the component.
    `java.util.List<Element>` | `getDiscoItems​(java.lang.String node, JID jid, JID from)` | Returns service discovery items for the component.
    `java.lang.String` | `getName()` | Method returns name of the component.
    `java.util.List<JID>` | `getNodesConnected()` |
    `java.util.List<JID>` | `getNodesConnectedWithLocal()` |
    `protected java.util.Map<java.lang.String,​CommandIfc>` | `getScriptCommands()` |
    `java.util.List<Element>` | `getScriptItems​(java.lang.String node, JID jid, JID from)` |
    `protected ServiceEntity` | `getServiceEntity()` |
    `java.util.Optional<Element>` | `getServiceEntityCaps​(JID fromJid)` |
    `void` | `getStatistics​(StatisticsList list)` |
    `VHostItem` | `getVHostItem​(java.lang.String domain)` |
    `boolean` | `handlesLocalDomains()` | Indicates whether the component accepts packets to all local domains.
    `boolean` | `handlesNameSubdomains()` | Indicates whether the component can handle packets to 'name' subdomain.
    `boolean` | `handlesNonLocalDomains()` | Indicates whether the component can handle all packets to non-local domains.
    `void` | `initBindings​(javax.script.Bindings binds)` | Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
    `void` | `initializationCompleted()` | Method is called by `MessageRouter` when all the startup components of the server have been loaded and configured through setProperties(...) call.
    `void` | `initialize()` | Method will be called, when bean will be created, configured and ready to use.
    `boolean` | `isAdmin​(JID jid)` |
    `boolean` | `isInitializationComplete()` | Method returns information about whether the initialization process (initializationCompleted()) method has been called.
    `boolean` | `isLocalDomain​(java.lang.String domain)` |
    `boolean` | `isLocalDomainOrComponent​(java.lang.String domain)` |
    `protected boolean` | `isNonAdminCommands()` |
    `boolean` | `isSubdomain()` |
    `boolean` | `isTrusted​(java.lang.String jid)` |
    `boolean` | `isTrusted​(JID jid)` |
    `void` | `nodeConnected​(java.lang.String node)` | Method is called on cluster node connection event.
    `void` | `nodeDisconnected​(java.lang.String node)` | Method is called on cluster node disconnection event.
    `protected void` | `onNodeConnected​(JID jid)` |
    `protected void` | `onNodeDisconnected​(JID jid)` |
    `void` | `processPacket​(Packet packet, java.util.Queue<Packet> results)` | `processPacket` is a blocking processing method implemented by all components.
    `boolean` | `processScriptCommand​(Packet pc, java.util.Queue<Packet> results)` |
    `void` | `release()` | Method called when component is being stopped and unloaded.
    `protected void` | `reloadScripts()` |
    `void` | `removeComponentDomain​(java.lang.String domain)` |
    `void` | `removeServiceDiscoveryItem​(java.lang.String jid, java.lang.String node, java.lang.String description)` |
    `void` | `setAdmins​(java.util.Set<BareJID> admins)` |
    `void` | `setClusterController​(ClusterControllerIfc cl_controller)` | Set's the configures the cluster controller object for cluster communication and API.
    `void` | `setCommandsACL​(java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.util.concurrent.CopyOnWriteArraySet<CmdAcl>> commandsACL)` |
    `void` | `setCompId​(JID jid)` |
    `void` | `setName​(java.lang.String name)` | Method used to assign component name (localpart of the component)
    `void` | `setProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)` | Deprecated.
    `void` | `setScriptsBaseDir​(java.lang.String scriptsBaseDir)` |
    `void` | `setVHostManager​(VHostManagerIfc manager)` | Sets the VHostManager which works on this server installation.
    `void` | `updateServiceDiscoveryItem​(java.lang.String jid, java.lang.String node, java.lang.String description, boolean admin)` |
    `void` | `updateServiceDiscoveryItem​(java.lang.String jid, java.lang.String node, java.lang.String description, boolean admin, java.lang.String... features)` |
    `void` | `updateServiceDiscoveryItem​(java.lang.String jid, java.lang.String node, java.lang.String description, java.lang.String category, java.lang.String type, boolean admin, java.lang.String... features)` |
    `void` | `updateServiceEntity()` |

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

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

- - ### Field Detail

    - #### ALL_PROP_KEY

          public static final java.lang.String ALL_PROP_KEY

      See Also:
        Constant Field Values

    - #### COMMAND_PROP_NODE

          public static final java.lang.String COMMAND_PROP_NODE

      See Also:
        Constant Field Values

    - #### SCRIPTS_DIR_PROP_DEF

          public static final java.lang.String SCRIPTS_DIR_PROP_DEF

      See Also:
        Constant Field Values

    - #### SCRIPTS_DIR_PROP_KEY

          public static final java.lang.String SCRIPTS_DIR_PROP_KEY

      See Also:
        Constant Field Values

    - #### admins

          @ConfigField(desc="List of admins JIDs",
                       alias="admins")
          protected java.util.concurrent.ConcurrentSkipListSet<BareJID> admins

    - #### scriptCommands

          protected java.util.Map<java.lang.String,​CommandIfc> scriptCommands

    - #### trusted

          protected java.util.concurrent.ConcurrentSkipListSet<java.lang.String> trusted

    - #### vHostManager

          @Inject(nullAllowed=true)
          protected VHostManagerIfc vHostManager

    - #### scriptEngineManager

          protected javax.script.ScriptEngineManager scriptEngineManager

  - ### Constructor Detail

    - #### BasicComponent

          public BasicComponent()

  - ### Method Detail

    - #### addComponentDomain

          public void addComponentDomain​(java.lang.String domain)

    - #### beanConfigurationChanged

          public void beanConfigurationChanged​(java.util.Collection<java.lang.String> changedFields)

      Description copied from interface: `ConfigurationChangedAware`
      Method called when configuration was applied to bean.
      Specified by:
        `beanConfigurationChanged` in interface `ConfigurationChangedAware`
      Parameters:
        `changedFields` - collection of field names which were changed

    - #### canCallCommand

          public boolean canCallCommand​(JID jid,
                                        java.lang.String commandId)

      Method checks if following adhoc command can execute from this JID
      Parameters:
        `jid` - - JID of entity which wants to execute command
        `commandId` - - ID of an adhoc command
      Returns:
        a value of `boolean`

    - #### canCallCommand

          public boolean canCallCommand​(JID jid,
                                        java.lang.String domain,
                                        java.lang.String commandId)

    - #### checkCommandAcl

          public boolean checkCommandAcl​(JID jid,
                                         java.util.Set<CmdAcl> acl)

      Check if entity with JID is allowed ot execute command with passed access control list.
      Parameters:
        `jid` - - entity JID
        `acl` - - access control list
      Returns:
        a value of `boolean`

    - #### checkCommandAcl

          public boolean checkCommandAcl​(JID jid,
                                         java.lang.String domain,
                                         java.util.Set<CmdAcl> acl)

      Check if entity with JID is allowed ot execute command with passed access control list.
      Parameters:
        `jid` - - entity JID
        `domain` - - domain for which check permission
        `acl` - - access control list
      Returns:
        a value of `boolean`

    - #### everyHour

          public void everyHour()

    - #### everyMinute

          public void everyMinute()

    - #### everySecond

          public void everySecond()

    - #### handlesLocalDomains

          public boolean handlesLocalDomains()

      Description copied from interface: `VHostListener`
      Indicates whether the component accepts packets to all local domains. The best example would be SM component which usually handles all requests sent to any local domain.
      Specified by:
        `handlesLocalDomains` in interface `VHostListener`
      Returns:
        'true' if the component accepts packets to local domains 'false' otherwise.

    - #### handlesNameSubdomains

          public boolean handlesNameSubdomains()

      Description copied from interface: `VHostListener`
      Indicates whether the component can handle packets to 'name' subdomain. Name subdomain is an artificial domain created from the component name and the domain name. The best example would be a 'MUC' component or a 'PubSub' component. They are usually named respectively 'muc' and 'pubsub' and they accept requests sent to domains 'muc.tigase.org' or 'pubsub.tigase.org', even though a local domain is just 'tigase.org'.
      Specified by:
        `handlesNameSubdomains` in interface `VHostListener`
      Returns:
        'true' if the component accepts packets to 'name' subdomains 'false' otherwise.

    - #### handlesNonLocalDomains

          public boolean handlesNonLocalDomains()

      Description copied from interface: `VHostListener`
      Indicates whether the component can handle all packets to non-local domains. S2s connection manager component is the best example of the component which handles all requests sent to non-local domains.
      Specified by:
        `handlesNonLocalDomains` in interface `VHostListener`
      Returns:
        'true' if the component accepts packets to non-local domains 'false' otherwise.

    - #### initBindings

          public void initBindings​(javax.script.Bindings binds)

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

    - #### initializationCompleted

          public void initializationCompleted()

      Description copied from interface: `ServerComponent`
      Method is called by `MessageRouter` when all the startup components of the server have been loaded and configured through setProperties(...) call. At this point the whole server should be loaded and functional, except initializations taking place in this routine.
      Specified by:
        `initializationCompleted` in interface `ServerComponent`

    - #### nodeConnected

          public void nodeConnected​(java.lang.String node)

      Description copied from interface: `ClusteredComponentIfc`
      Method is called on cluster node connection event. This is a notification to the component that a new cluster node has connected.
      Specified by:
        `nodeConnected` in interface `ClusteredComponentIfc`
      Parameters:
        `node` - is a hostname of a cluster node generating the event.

    - #### nodeDisconnected

          public void nodeDisconnected​(java.lang.String node)

      Description copied from interface: `ClusteredComponentIfc`
      Method is called on cluster node disconnection event. This is a notification to the component that there was network connection lost to one of the cluster nodes.
      Specified by:
        `nodeDisconnected` in interface `ClusteredComponentIfc`
      Parameters:
        `node` - is a hostname of a cluster node generating the event.

    - #### processPacket

          public void processPacket​(Packet packet,
                                    java.util.Queue<Packet> results)

      Description copied from interface: `ServerComponent`
      `processPacket` is a blocking processing method implemented by all components. This method processes packet and returns results instantly without waiting for any resources.
      Specified by:
        `processPacket` in interface `ServerComponent`
      Parameters:
        `packet` - a `Packet` value

    - #### release

          public void release()

      Description copied from interface: `ServerComponent`
      Method called when component is being stopped and unloaded.
      Specified by:
        `release` in interface `ServerComponent`

    - #### removeComponentDomain

          public void removeComponentDomain​(java.lang.String domain)

    - #### removeServiceDiscoveryItem

          public void removeServiceDiscoveryItem​(java.lang.String jid,
                                                 java.lang.String node,
                                                 java.lang.String description)

    - #### setClusterController

          public void setClusterController​(ClusterControllerIfc cl_controller)

      Description copied from interface: `ClusteredComponentIfc`
      Set's the configures the cluster controller object for cluster communication and API.
      Specified by:
        `setClusterController` in interface `ClusteredComponentIfc`
      Parameters:
        `cl_controller` - cluster controller object used for cluster communication

    - #### updateServiceDiscoveryItem

          public void updateServiceDiscoveryItem​(java.lang.String jid,
                                                 java.lang.String node,
                                                 java.lang.String description,
                                                 boolean admin)

    - #### updateServiceDiscoveryItem

          public void updateServiceDiscoveryItem​(java.lang.String jid,
                                                 java.lang.String node,
                                                 java.lang.String description,
                                                 boolean admin,
                                                 java.lang.String... features)

    - #### updateServiceDiscoveryItem

          public void updateServiceDiscoveryItem​(java.lang.String jid,
                                                 java.lang.String node,
                                                 java.lang.String description,
                                                 java.lang.String category,
                                                 java.lang.String type,
                                                 boolean admin,
                                                 java.lang.String... features)

    - #### updateServiceEntity

          public void updateServiceEntity()

    - #### getComponentId

          public JID getComponentId()

      Description copied from interface: `ServerComponent`
      Method returns component jid in form of the component name followed by server hostname as a domain.
      Specified by:
        `getComponentId` in interface `ServerComponent`
      Returns:
        jid

    - #### setCompId

          public void setCompId​(JID jid)

    - #### getComponentInfo

          public ComponentInfo getComponentInfo()

      Description copied from interface: `ServerComponent`
      Allows to obtain various informations about components
      Specified by:
        `getComponentInfo` in interface `ServerComponent`
      Returns:
        information about particular component

    - #### getDefaults

          @Deprecated
          public java.util.Map<java.lang.String,​java.lang.Object> getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> params)

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

    - #### getDefHostName

          public BareJID getDefHostName()

    - #### getDefVHostItem

          public BareJID getDefVHostItem()

    - #### getDiscoCategory

          public java.lang.String getDiscoCategory()

      Method returns category of a component used for service discovery responses.
      Returns:
        category of a component

    - #### getDiscoCategoryType

          public java.lang.String getDiscoCategoryType()

      Method returns component category type used for service discovery responses.
      Returns:
        category type of a component

    - #### getDiscoDescription

          public java.lang.String getDiscoDescription()

      Method returns description used for service discovery responses.
      Returns:
        description of a component

    - #### getDiscoFeatures

          public java.util.List<Element> getDiscoFeatures()

      Method returns list of features provided by this component.
      Returns:
        list of features

    - #### getDiscoFeatures

          public java.util.List<Element> getDiscoFeatures​(JID from)

      Method returns list of features provided by this component for provided JID.
      Specified by:
        `getDiscoFeatures` in interface `XMPPService`
      Parameters:
        `from` - a request sender address. Some service disco elements are meant to be available only to system administrarors. The component is responsible to check whether the sender is the component administrator and return results appropriate.
      Returns:
        list of features

    - #### getDiscoInfo

          public Element getDiscoInfo​(java.lang.String node,
                                      JID jid,
                                      JID from)

      Description copied from interface: `XMPPService`
      Returns service discovery info for the component. If the jid is null then this is info for the top level request. SM may return disco info on the top level. Other components should not.
      Specified by:
        `getDiscoInfo` in interface `XMPPService`
      Parameters:
        `node` - is service discovery node for which the request is made. Is normally null for the component top level request.
        `jid` - is the jid to which the request has been made.
        `from` - is the request sender address. Some service discovery information is only meant for administrators.
      Returns:
        returns an XML Element with service discovery data.

    - #### getDiscoExtensionsForm

          public Element getDiscoExtensionsForm​(java.lang.String domain)

    - #### getDiscoItems

          public java.util.List<Element> getDiscoItems​(java.lang.String node,
                                                       JID jid,
                                                       JID from)

      Description copied from interface: `XMPPService`
      Returns service discovery items for the component. If the JID is null then this is request for the top level request. SM may return disco items on the top level, other components should just return it's top level service discovery item for null node.
      Specified by:
        `getDiscoItems` in interface `XMPPService`
      Parameters:
        `node` - is a service discovery node for which the request has been made.
        `jid` - is the jid to which the request has been made.
        `from` - is the request sender address. Some service discovery information is only meant for administrators.
      Returns:
        a list of service discovery items for this component or the component itself disco item for the top level request.

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `ServerComponent`
      Method returns name of the component.
      Specified by:
        `getName` in interface `ServerComponent`
      Returns:
        name of the component

    - #### setName

          public void setName​(java.lang.String name)

      Description copied from interface: `ServerComponent`
      Method used to assign component name (localpart of the component)
      Specified by:
        `setName` in interface `ServerComponent`
      Parameters:
        `name` - to be assigned

    - #### getStatistics

          public void getStatistics​(StatisticsList list)

    - #### getScriptItems

          public java.util.List<Element> getScriptItems​(java.lang.String node,
                                                        JID jid,
                                                        JID from)

    - #### getVHostItem

          public VHostItem getVHostItem​(java.lang.String domain)

    - #### isAdmin

          public boolean isAdmin​(JID jid)

    - #### isInitializationComplete

          public boolean isInitializationComplete()

      Description copied from interface: `ServerComponent`
      Method returns information about whether the initialization process (initializationCompleted()) method has been called.
      Specified by:
        `isInitializationComplete` in interface `ServerComponent`
      Returns:
        `true` if initialization of the object has been completed `false` otherwise

    - #### isLocalDomain

          public boolean isLocalDomain​(java.lang.String domain)

    - #### isLocalDomainOrComponent

          public boolean isLocalDomainOrComponent​(java.lang.String domain)

    - #### isSubdomain

          public boolean isSubdomain()

    - #### isTrusted

          public boolean isTrusted​(JID jid)

    - #### isTrusted

          public boolean isTrusted​(java.lang.String jid)

    - #### setAdmins

          public void setAdmins​(java.util.Set<BareJID> admins)

    - #### setProperties

          @Deprecated
          public void setProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)
                             throws ConfigurationException

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

    - #### setCommandsACL

          public void setCommandsACL​(java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.util.concurrent.CopyOnWriteArraySet<CmdAcl>> commandsACL)

    - #### setScriptsBaseDir

          public void setScriptsBaseDir​(java.lang.String scriptsBaseDir)

    - #### setVHostManager

          public void setVHostManager​(VHostManagerIfc manager)

      Description copied from interface: `VHostListener`
      Sets the VHostManager which works on this server installation. The VHostManager allows for accessing vritual domain data.
      Specified by:
        `setVHostManager` in interface `VHostListener`
      Parameters:
        `manager` - is a reference to VHostManager available on the server installation.

    - #### getNodesConnected

          public java.util.List<JID> getNodesConnected()

    - #### getNodesConnectedWithLocal

          public java.util.List<JID> getNodesConnectedWithLocal()

    - #### processScriptCommand

          public boolean processScriptCommand​(Packet pc,
                                              java.util.Queue<Packet> results)

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

    - #### getServiceEntityCaps

          public java.util.Optional<Element> getServiceEntityCaps​(JID fromJid)

    - #### createScriptEngineManager

          protected javax.script.ScriptEngineManager createScriptEngineManager()

    - #### onNodeConnected

          protected void onNodeConnected​(JID jid)

    - #### onNodeDisconnected

          protected void onNodeDisconnected​(JID jid)

    - #### getScriptCommands

          protected java.util.Map<java.lang.String,​CommandIfc> getScriptCommands()

    - #### getServiceEntity

          protected ServiceEntity getServiceEntity()

    - #### isNonAdminCommands

          protected boolean isNonAdminCommands()

    - #### reloadScripts

          protected void reloadScripts()