Package tigase.component

## Class AbstractComponent

- java.lang.Object
- - tigase.server.BasicComponent
  - - tigase.server.AbstractMessageReceiver
    - - tigase.component.AbstractComponent

- All Implemented Interfaces:
    `ClusteredComponentIfc`, `Configurable`, `XMPPService`, `ConfigurationChangedAware`, `Initializable`, `DisableDisco`, `MessageReceiver`, `PacketWriterWithTimeout`, `ServerComponent`, `StatisticsContainer`, `StatisticsContainerIfc`, `VHostListener`

      @Deprecated
      public abstract class AbstractComponent
      extends AbstractMessageReceiver
      implements XMPPService, DisableDisco

  Deprecated.
  Do not use this class at all. Use `AbstractKernelBasedComponent` instead. This class is here just because developer wants to know how some parts of code worked before migration to Kernel Based TCF.
  Base class for implement XMPP Component.
  Author:
    bmalkow

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `AbstractComponent.DefaultPacketWriter` | Deprecated.

    - ### Nested classes/interfaces inherited from class tigase.server.BasicComponent

      `BasicComponent.ServerInfoVHostItemExtension`

    - ### Nested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout

      `PacketWriterWithTimeout.Handler`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static java.lang.String` | `COMPONENT` | Deprecated.
    `protected EventBus` | `eventBus` | Deprecated.
    `protected java.util.logging.Logger` | `log` | Deprecated.

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

      `HOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, SCHEDULER_THREADS_PROP_KEY, SECOND`

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

      `admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, 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
    --- | ---
    `AbstractComponent()` | Deprecated.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `addOutPacket​(Packet packet, AsyncCallback asyncCallback)` | Deprecated.
    `void` | `everyMinute()` | Deprecated. Utility method executed precisely every minute.
    `abstract java.lang.String` | `getComponentVersion()` | Deprecated. Returns version of component.
    `protected abstract java.util.Map<java.lang.String,​java.lang.Class<? extends Module>>` | `getDefaultModulesList()` | Deprecated. Returns default map of components.
    `java.util.Map<java.lang.String,​java.lang.Object>` | `getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> params)` | Deprecated. Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values.
    `Kernel` | `getKernel()` | Deprecated.
    `ResponseManager` | `getResponseManager()` | Deprecated.
    `StanzaProcessor` | `getStanzaProcessor()` | Deprecated.
    `void` | `initBindings​(javax.script.Bindings binds)` | Deprecated. Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
    `protected void` | `initModules​(java.util.Map<java.lang.String,​java.lang.Object> props)` | Deprecated.
    `abstract boolean` | `isDiscoNonAdmin()` | Deprecated. Is this component discoverable by disco#items for domain by non admin users.
    `void` | `processPacket​(Packet packet)` | Deprecated. This is the main `Packet` processing method.
    `void` | `setEventBus​(EventBus eventBus)` | Deprecated.
    `void` | `setKernel​(Kernel kernel)` | Deprecated.
    `void` | `setProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)` | Deprecated. Sets all configuration properties for the object.
    `void` | `setResponseManager​(ResponseManager responseManager)` | Deprecated.
    `void` | `setStanzaProcessor​(StanzaProcessor stanzaProcessor)` | Deprecated.
    `void` | `updateServiceEntity()` | Deprecated.

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

      `addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, beanConfigurationChanged, clearRegexRoutings, everyHour, everySecond, getMaxQueueSize, getRegexRoutings, getResourceForPacketWithTimeout, getStatistics, hashCodeForPacket, isInRegexRoutings, newPacketId, processingInThreads, processingOutThreads, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setCompId, setIncoming_filters, setName, setOutgoing_filters, setParent, setSchedulerThreads_size, start, stop, updateFiltersName`

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

      `addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getComponentInfo, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoCategoryType, getDiscoDescription, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, initialize, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem`

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

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

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

      `getDefHostName`

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

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

    - ### Methods inherited from interface tigase.stats.StatisticsContainerIfc

      `getName`

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

      `getDiscoFeatures, getDiscoInfo, getDiscoItems`

- - ### Field Detail

    - #### COMPONENT

          protected static final java.lang.String COMPONENT

      Deprecated.
      See Also:
        Constant Field Values

    - #### log

          protected final java.util.logging.Logger log

      Deprecated.

    - #### eventBus

          @Inject(bean="eventBus")
          protected EventBus eventBus

      Deprecated.

  - ### Constructor Detail

    - #### AbstractComponent

          public AbstractComponent()

      Deprecated.

  - ### Method Detail

    - #### everyMinute

          public void everyMinute()

      Deprecated.
      Description copied from class: `AbstractMessageReceiver`
      Utility method executed precisely every minute. A component can overwrite the method to put own code to be executed at the regular intervals of time.
      Note, no extensive calculations should happen in this method nor long lasting operations. It is essential that the method processing does not exceed 1 minute. The overriding method must call the the super method first and only then run own code.
      Overrides:
        `everyMinute` in class `AbstractMessageReceiver`

    - #### getComponentVersion

          public abstract java.lang.String getComponentVersion()

      Deprecated.
      Returns version of component. Used for Service Discovery purposes.
      Returns:
        version of component.

    - #### getDefaults

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

    - #### getKernel

          public Kernel getKernel()

      Deprecated.

    - #### setKernel

          public void setKernel​(Kernel kernel)

      Deprecated.

    - #### getResponseManager

          public ResponseManager getResponseManager()

      Deprecated.

    - #### setResponseManager

          public void setResponseManager​(ResponseManager responseManager)

      Deprecated.

    - #### getStanzaProcessor

          public StanzaProcessor getStanzaProcessor()

      Deprecated.

    - #### setStanzaProcessor

          public void setStanzaProcessor​(StanzaProcessor stanzaProcessor)

      Deprecated.

    - #### initBindings

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

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

    - #### isDiscoNonAdmin

          public abstract boolean isDiscoNonAdmin()

      Deprecated.
      Is this component discoverable by disco#items for domain by non admin users.
      Returns:
        `true` - if yes

    - #### processPacket

          public void processPacket​(Packet packet)

      Deprecated.
      Description copied from class: `AbstractMessageReceiver`
      This is the main `Packet` processing method. It is called concurrently from many threads so implementing it in thread save manner is essential. The method is called for each packet addressed to the component.
      Please note, the `Packet` instance may be processed by different parts of the server, different components or plugins at the same time. Therefore this is very important to tread the `Packet` instance as unmodifiable object.
      Processing in this method is asynchronous, therefore there is no result value. If there are some 'result' packets generated during processing, they should be passed back using `addOutPacket(Packet)` method.
      Specified by:
        `processPacket` in class `AbstractMessageReceiver`
      Parameters:
        `packet` - is an instance of the `Packet` class passed for processing.

    - #### setProperties

          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`
      Overrides:
        `setProperties` in class `BasicComponent`
      Parameters:
        `props` - `Map` with the configuration
      Throws:
        `ConfigurationException` - - if setting configuration will fail which will make it unable to work

    - #### updateServiceEntity

          public void updateServiceEntity()

      Deprecated.
      Overrides:
        `updateServiceEntity` in class `BasicComponent`

    - #### setEventBus

          public void setEventBus​(EventBus eventBus)

      Deprecated.

    - #### addOutPacket

          protected void addOutPacket​(Packet packet,
                                      AsyncCallback asyncCallback)

      Deprecated.

    - #### getDefaultModulesList

          protected abstract java.util.Map<java.lang.String,​java.lang.Class<? extends Module>> getDefaultModulesList()

      Deprecated.
      Returns default map of components. Keys in map are used as component identifiers.
      This map may be modified by `config.tdsl`:
      `<component_name>/modules/<module_name>[S]=<module_class>`
      Returns:
        map of default modules.

    - #### initModules

          protected void initModules​(java.util.Map<java.lang.String,​java.lang.Object> props)
                              throws java.lang.InstantiationException,
                                     java.lang.IllegalAccessException,
                                     java.lang.IllegalArgumentException,
                                     java.lang.reflect.InvocationTargetException

      Deprecated.
      Throws:
        `java.lang.InstantiationException`
        `java.lang.IllegalAccessException`
        `java.lang.IllegalArgumentException`
        `java.lang.reflect.InvocationTargetException`