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 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 ConcurrentSkipListSet<BareJID>`
  `admins`
  `static final String`
  `ALL_PROP_KEY`
  `static final String`
  `COMMAND_PROP_NODE`
  `protected Map<String,CommandIfc>`
  `scriptCommands`
  `protected ScriptEngineManager`
  `scriptEngineManager`
  `static final String`
  `SCRIPTS_DIR_PROP_DEF`
  `static final String`
  `SCRIPTS_DIR_PROP_KEY`
  `protected ConcurrentSkipListSet<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

  Modifier and Type
  Method
  Description
  `void`
  `addComponentDomain(String domain)`
  `void`
  `beanConfigurationChanged(Collection<String> changedFields)`
  Method called when configuration was applied to bean.
  `boolean`
  `canCallCommand(JID jid, String commandId)`
  Method checks if following adhoc command can execute from this JID
  `boolean`
  `canCallCommand(JID jid, String domain, String commandId)`
  `boolean`
  `checkCommandAcl(JID jid, String domain, Set<CmdAcl> acl)`
  Check if entity with JID is allowed ot execute command with passed access control list.
  `boolean`
  `checkCommandAcl(JID jid, Set<CmdAcl> acl)`
  Check if entity with JID is allowed ot execute command with passed access control list.
  `protected 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
  `Map<String,Object>`
  `getDefaults(Map<String,Object> params)`
  Deprecated.
  `BareJID`
  `getDefHostName()`
  `BareJID`
  `getDefVHostItem()`
  `String`
  `getDiscoCategory()`
  Method returns category of a component used for service discovery responses.
  `String`
  `getDiscoCategoryType()`
  Method returns component category type used for service discovery responses.
  `String`
  `getDiscoDescription()`
  Method returns description used for service discovery responses.
  `Element`
  `getDiscoExtensionsForm(String domain)`
  `List<Element>`
  `getDiscoFeatures()`
  Method returns list of features provided by this component.
  `List<Element>`
  `getDiscoFeatures(JID from)`
  Method returns list of features provided by this component for provided JID.
  `Element`
  `getDiscoInfo(String node, JID jid, JID from)`
  Returns service discovery info for the component.
  `List<Element>`
  `getDiscoItems(String node, JID jid, JID from)`
  Returns service discovery items for the component.
  `String`
  `getName()`
  Method returns name of the component.
  `List<JID>`
  `getNodesConnected()`
  `List<JID>`
  `getNodesConnectedWithLocal()`
  `protected Map<String,CommandIfc>`
  `getScriptCommands()`
  `List<Element>`
  `getScriptItems(String node, JID jid, JID from)`
  `protected ServiceEntity`
  `getServiceEntity()`
  `Optional<Element>`
  `getServiceEntityCaps(JID fromJid)`
  `void`
  `getStatistics(StatisticsList list)`
  `VHostItem`
  `getVHostItem(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(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(String domain)`
  `boolean`
  `isLocalDomainOrComponent(String domain)`
  `protected boolean`
  `isNonAdminCommands()`
  `boolean`
  `isSubdomain()`
  `boolean`
  `isTrusted(String jid)`
  `boolean`
  `isTrusted(JID jid)`
  `void`
  `nodeConnected(String node)`
  Method is called on cluster node connection event.
  `void`
  `nodeDisconnected(String node)`
  Method is called on cluster node disconnection event.
  `protected void`
  `onNodeConnected(JID jid)`
  `protected void`
  `onNodeDisconnected(JID jid)`
  `void`
  `processPacket(Packet packet, Queue<Packet> results)`
  `processPacket` is a blocking processing method implemented by all components.
  `boolean`
  `processScriptCommand(Packet pc, Queue<Packet> results)`
  `void`
  `release()`
  Method called when component is being stopped and unloaded.
  `protected void`
  `reloadScripts()`
  `void`
  `removeComponentDomain(String domain)`
  `void`
  `removeServiceDiscoveryItem(String jid, String node, String description)`
  `void`
  `setAdmins(Set<BareJID> admins)`
  `void`
  `setClusterController(ClusterControllerIfc cl_controller)`
  Set's the configures the cluster controller object for cluster communication and API.
  `void`
  `setCommandsACL(ConcurrentHashMap<String,CopyOnWriteArraySet<CmdAcl>> commandsACL)`
  `void`
  `setCompId(JID jid)`
  `void`
  `setName(String name)`
  Method used to assign component name (localpart of the component)
  `void`
  `setProperties(Map<String,Object> props)`
  Deprecated.
  `void`
  `setScriptsBaseDir(String scriptsBaseDir)`
  `void`
  `setVHostManager(VHostManagerIfc manager)`
  Sets the VHostManager which works on this server installation.
  `void`
  `updateServiceDiscoveryItem(String jid, String node, String description, boolean admin)`
  `void`
  `updateServiceDiscoveryItem(String jid, String node, String description, boolean admin, String... features)`
  `void`
  `updateServiceDiscoveryItem(String jid, String node, String description, String category, String type, boolean admin, String... features)`
  `void`
  `updateServiceEntity()`

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

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

- ## Field Details

  - ### ALL_PROP_KEY

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

  - ### COMMAND_PROP_NODE

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

  - ### SCRIPTS_DIR_PROP_DEF

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

  - ### SCRIPTS_DIR_PROP_KEY

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

  - ### admins

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

  - ### scriptCommands

    protected Map<String,CommandIfc> scriptCommands

  - ### trusted

    protected ConcurrentSkipListSet<String> trusted

  - ### vHostManager

    @Inject(nullAllowed=true) protected VHostManagerIfc vHostManager

  - ### scriptEngineManager

    protected ScriptEngineManager scriptEngineManager

- ## Constructor Details

  - ### BasicComponent

    public BasicComponent()

- ## Method Details

  - ### addComponentDomain

    public void addComponentDomain(String domain)

  - ### beanConfigurationChanged

    public void beanConfigurationChanged(Collection<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, 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, String domain, String commandId)

  - ### checkCommandAcl

    public boolean checkCommandAcl(JID jid, 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, String domain, 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(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(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(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, 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(String domain)

  - ### removeServiceDiscoveryItem

    public void removeServiceDiscoveryItem(String jid, String node, 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(String jid, String node, String description, boolean admin)

  - ### updateServiceDiscoveryItem

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

  - ### updateServiceDiscoveryItem

    public void updateServiceDiscoveryItem(String jid, String node, String description, String category, String type, boolean admin, 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 Map<String,Object> getDefaults(Map<String,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 String getDiscoCategory()
    Method returns category of a component used for service discovery responses.
    Returns:
      category of a component

  - ### getDiscoCategoryType

    public String getDiscoCategoryType()
    Method returns component category type used for service discovery responses.
    Returns:
      category type of a component

  - ### getDiscoDescription

    public String getDiscoDescription()
    Method returns description used for service discovery responses.
    Returns:
      description of a component

  - ### getDiscoFeatures

    public List<Element> getDiscoFeatures()
    Method returns list of features provided by this component.
    Returns:
      list of features

  - ### getDiscoFeatures

    public 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(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(String domain)

  - ### getDiscoItems

    public List<Element> getDiscoItems(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 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(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 List<Element> getScriptItems(String node, JID jid, JID from)

  - ### getVHostItem

    public VHostItem getVHostItem(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(String domain)

  - ### isLocalDomainOrComponent

    public boolean isLocalDomainOrComponent(String domain)

  - ### isSubdomain

    public boolean isSubdomain()

  - ### isTrusted

    public boolean isTrusted(JID jid)

  - ### isTrusted

    public boolean isTrusted(String jid)

  - ### setAdmins

    public void setAdmins(Set<BareJID> admins)

  - ### setProperties

    @Deprecated public void setProperties(Map<String,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(ConcurrentHashMap<String,CopyOnWriteArraySet<CmdAcl>> commandsACL)

  - ### setScriptsBaseDir

    public void setScriptsBaseDir(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 List<JID> getNodesConnected()

  - ### getNodesConnectedWithLocal

    public List<JID> getNodesConnectedWithLocal()

  - ### processScriptCommand

    public boolean processScriptCommand(Packet pc, 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 Optional<Element> getServiceEntityCaps(JID fromJid)

  - ### createScriptEngineManager

    protected ScriptEngineManager createScriptEngineManager()

  - ### onNodeConnected

    protected void onNodeConnected(JID jid)

  - ### onNodeDisconnected

    protected void onNodeDisconnected(JID jid)

  - ### getScriptCommands

    protected Map<String,CommandIfc> getScriptCommands()

  - ### getServiceEntity

    protected ServiceEntity getServiceEntity()

  - ### isNonAdminCommands

    protected boolean isNonAdminCommands()

  - ### reloadScripts

    protected void reloadScripts()