tigase.cluster

## Class ClusterConnectionManager

- java.lang.Object
- - tigase.server.BasicComponent
  - - tigase.server.AbstractMessageReceiver
    - - tigase.server.ConnectionManager<XMPPIOService<Object>>
      - - tigase.cluster.ClusterConnectionManager

- All Implemented Interfaces:
    ClusterConnectionHandler, ClusteredComponentIfc, Configurable, RepositoryChangeListenerIfc<ClusterRepoItem>, XMPPService, IOServiceListener<XMPPIOService<Object>>, MessageReceiver, ServerComponent, StatisticsContainer, StatisticsContainerIfc, VHostListener, XMPPIOServiceListener<XMPPIOService<Object>>

      public class ClusterConnectionManager
      extends ConnectionManager<XMPPIOService<Object>>
      implements ClusteredComponentIfc, RepositoryChangeListenerIfc<ClusterRepoItem>, ClusterConnectionHandler

  Class ClusterConnectionManager Created: Tue Nov 22 07:07:11 2005
  Version:
    $Rev$
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ClusterConnectionManager.REPO_ITEM_UPDATE_TYPE`
    `protected class` | `ClusterConnectionManager.Watchdog`

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

      `ConnectionManager.LIMIT_ACTION, ConnectionManager.WATCHDOG_PING_TYPE`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CLCON_REPO_CLASS_PROP_KEY` Field description
    `static String` | `CLCON_REPO_CLASS_PROP_VAL` Field description
    `static String` | `CLCON_REPO_CLASS_PROPERTY` Field description
    `static String` | `CLUSTER_CONNECTIONS_PER_NODE_PAR` Field description
    `static String` | `CLUSTER_CONNECTIONS_PER_NODE_PROP_KEY` Field description
    `static int` | `CLUSTER_CONNECTIONS_PER_NODE_VAL` Field description
    `static String` | `CLUSTER_CONNECTIONS_SELECTOR_KEY` Field description
    `static String` | `CLUSTER_CONTR_ID_PROP_KEY` Field description
    `static String` | `CLUSTER_INITIATED_EVENT`
    `static String` | `COMPRESS_STREAM_PROP_KEY` Field description
    `static boolean` | `COMPRESS_STREAM_PROP_VAL` Field description
    `static String` | `CONNECT_ALL_PAR` Field description
    `static String` | `CONNECT_ALL_PROP_KEY` Field description
    `static boolean` | `CONNECT_ALL_PROP_VAL` Field description
    `static String` | `DEF_CLUSTER_CONNECTIONS_SELECTOR_VAL` Field description
    `static int` | `ELEMENTS_NUMBER_LIMIT_CLUSTER_PROP_VAL` Default value for the system property for configuration protection from system overload and DOS attack.
    `static String` | `EVENTBUS_REPO_ITEM_EVENT_XMLNS`
    `static String` | `EVENTBUS_REPOSITORY_NOTIFICATIONS_ENABLED_KEY`
    `static boolean` | `EVENTBUS_REPOSITORY_NOTIFICATIONS_ENABLED_VALUE`
    `static String` | `IDENTITY_TYPE_KEY` Field description
    `static String` | `IDENTITY_TYPE_VAL` Field description
    `static String` | `NON_CLUSTER_TRAFFIC_ALLOWED_PROP_KEY`
    `static boolean` | `NON_CLUSTER_TRAFFIC_ALLOWED_PROP_VAL`
    `static String` | `PORT_ROUTING_TABLE_PROP_KEY` Field description
    `static String` | `REPO_ITEM_EVENT_NAME`
    `static String` | `RETURN_SERVICE_DISCO_KEY` Field description
    `static boolean` | `RETURN_SERVICE_DISCO_VAL` Field description
    `static String` | `SECRET_PROP_KEY` Field description
    `static String` | `XMLNS` Field description

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

      `connectionDelay, delayPortListening, elements_number_limit, ELEMENTS_NUMBER_LIMIT_PROP_KEY, ELEMENTS_NUMBER_LIMIT_PROP_VAL, HT_TRAFFIC_THROTTLING_PROP_KEY, HT_TRAFFIC_THROTTLING_PROP_VAL, LAST_MINUTE_BIN_LIMIT_PROP_VAL, LAST_MINUTE_PACKETS_LIMIT_PROP_VAL, MAX_INACTIVITY_TIME, MAX_RECONNECTS_PROP_KEY, net_buffer, NET_BUFFER_HT_PROP_KEY, NET_BUFFER_HT_PROP_VAL, NET_BUFFER_LIMIT_HT_PROP_VAL, NET_BUFFER_LIMIT_PROP_KEY, NET_BUFFER_LIMIT_ST_PROP_VAL, NET_BUFFER_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, pingElement, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_IFC_PROP_VAL, PORT_KEY, PORT_LISTENING_DELAY_DEF, PORT_LISTENING_DELAY_KEY, PORT_LOCAL_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, processors, PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TLS_PROP_KEY, TLS_REQUIRED_PROP_KEY, TLS_REQUIRED_PROP_VAL, TLS_USE_PROP_KEY, TLS_USE_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, WATCHDOG_DELAY, WATCHDOG_PING_TYPE_KEY, WATCHDOG_TIMEOUT, watchdogDelay, watchdogPingType, watchdogTimeout, WHITE_CHAR_ACK_PROP_KEY, WHITE_CHAR_ACK_PROP_VAL, XMPP_ACK_PROP_KEY, XMPP_ACK_PROP_VAL`

    - ### 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, 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_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, 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, 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
    `ClusterConnectionManager()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `everyHour()` Utility method executed precisely every hour.
    `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.
    `protected int[]` | `getDefPlainPorts()` Method description
    `protected String` | `getDefTrafficThrottling()` Method description
    `String` | `getDiscoCategoryType()` Method description
    `String` | `getDiscoDescription()` Method description
    `protected long` | `getMaxInactiveTime()` Method description
    `protected Integer` | `getMaxQueueSize(int def)` Method description
    `protected Map<String,Object>` | `getParamsForPort(int port)` Method description
    `void` | `getStatistics(StatisticsList list)` Method returns component statistics.
    `protected XMPPIOService<Object>` | `getXMPPIOServiceInstance()` Method description
    `int` | `hashCodeForPacket(Packet packet)` This method decides how incoming packets are distributed among processing threads.
    `void` | `initBindings(Bindings binds)` Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
    `protected boolean` | `isHighThroughput()` Method description
    `void` | `itemAdded(ClusterRepoItem repoItem)`
    `void` | `itemRemoved(ClusterRepoItem item)`
    `void` | `itemUpdated(ClusterRepoItem item)`
    `void` | `nodeConnected(String node)` Method is called on cluster node connection event.
    `void` | `nodeDisconnected(String node)` Method is called on cluster node disconnection event.
    `int` | `processingInThreads()` Concurrency control method.
    `int` | `processingOutThreads()` Concurrency control method.
    `void` | `processOutPacket(Packet packet)` By default this method just copies the given packet between queue.
    `void` | `processPacket(Packet packet)` This is the main `Packet` processing method.
    `Queue<Packet>` | `processSocketData(XMPPIOService<Object> serv)`
    `boolean` | `processUndeliveredPacket(Packet packet, Long stamp, String errorMessage)` Processes undelivered packets
    `void` | `reconnectionFailed(Map<String,Object> port_props)`
    `int` | `schedulerThreads()` Method returns default number of threads used by SchedulerExecutorService
    `protected void` | `serviceConnected(XMPPIOService<Object> serv)` Method description
    `void` | `serviceStarted(XMPPIOService<Object> serv)`
    `boolean` | `serviceStopped(XMPPIOService<Object> service)`
    `void` | `setClusterController(ClusterControllerIfc cl_controller)` Set's the configures the cluster controller object for cluster communication and API.
    `void` | `setProperties(Map<String,Object> props)` Sets all configuration properties for the object.
    `void` | `start()`
    `void` | `stop()` Method description
    `void` | `tlsHandshakeCompleted(XMPPIOService<Object> service)`
    `void` | `updateConnectionDetails(Map<String,Object> port_props)`
    `protected boolean` | `writePacketToSocket(Packet p)`
    `void` | `xmppStreamClosed(XMPPIOService<Object> serv)`
    `String[]` | `xmppStreamOpened(XMPPIOService<Object> service, Map<String,String> attribs)`

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

      `addWaitingTask, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, everyMinute, getDefSSLPorts, getServiceId, getServiceId, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, newWatchdog, packetsReady, release, setName, setupWatchdogThread, socketAccepted, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawData, xmppStreamError`

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

      `addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everySecond, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processPacket, removeRegexRouting, setMaxQueueSize, setParent`

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

      `addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getComponentInfo, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, onNodeConnected, onNodeDisconnected, processScriptCommand, removeComponentDomain, 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, setName`

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

      `getName`

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

      `getDefHostName`

- - ### Field Detail

    - #### CLCON_REPO_CLASS_PROP_KEY

          public static final String CLCON_REPO_CLASS_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### CLCON_REPO_CLASS_PROP_VAL

          public static final String CLCON_REPO_CLASS_PROP_VAL

      Field description
      See Also:
        Constant Field Values

    - #### CLCON_REPO_CLASS_PROPERTY

          public static final String CLCON_REPO_CLASS_PROPERTY

      Field description
      See Also:
        Constant Field Values

    - #### CLUSTER_CONNECTIONS_PER_NODE_PAR

          public static final String CLUSTER_CONNECTIONS_PER_NODE_PAR

      Field description
      See Also:
        Constant Field Values

    - #### CLUSTER_CONNECTIONS_PER_NODE_PROP_KEY

          public static final String CLUSTER_CONNECTIONS_PER_NODE_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### CLUSTER_CONNECTIONS_PER_NODE_VAL

          public static final int CLUSTER_CONNECTIONS_PER_NODE_VAL

      Field description
      See Also:
        Constant Field Values

    - #### CLUSTER_CONNECTIONS_SELECTOR_KEY

          public static final String CLUSTER_CONNECTIONS_SELECTOR_KEY

      Field description
      See Also:
        Constant Field Values

    - #### DEF_CLUSTER_CONNECTIONS_SELECTOR_VAL

          public static final String DEF_CLUSTER_CONNECTIONS_SELECTOR_VAL

      Field description

    - #### CLUSTER_CONTR_ID_PROP_KEY

          public static final String CLUSTER_CONTR_ID_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### CLUSTER_INITIATED_EVENT

          public static final String CLUSTER_INITIATED_EVENT

      See Also:
        Constant Field Values

    - #### COMPRESS_STREAM_PROP_KEY

          public static final String COMPRESS_STREAM_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### CONNECT_ALL_PAR

          public static final String CONNECT_ALL_PAR

      Field description
      See Also:
        Constant Field Values

    - #### CONNECT_ALL_PROP_KEY

          public static final String CONNECT_ALL_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### NON_CLUSTER_TRAFFIC_ALLOWED_PROP_KEY

          public static final String NON_CLUSTER_TRAFFIC_ALLOWED_PROP_KEY

      See Also:
        Constant Field Values

    - #### NON_CLUSTER_TRAFFIC_ALLOWED_PROP_VAL

          public static final boolean NON_CLUSTER_TRAFFIC_ALLOWED_PROP_VAL

      See Also:
        Constant Field Values

    - #### ELEMENTS_NUMBER_LIMIT_CLUSTER_PROP_VAL

          public static int ELEMENTS_NUMBER_LIMIT_CLUSTER_PROP_VAL

      Default value for the system property for configuration protection from system overload and DOS attack.

    - #### IDENTITY_TYPE_KEY

          public static final String IDENTITY_TYPE_KEY

      Field description
      See Also:
        Constant Field Values

    - #### IDENTITY_TYPE_VAL

          public static final String IDENTITY_TYPE_VAL

      Field description
      See Also:
        Constant Field Values

    - #### PORT_ROUTING_TABLE_PROP_KEY

          public static final String PORT_ROUTING_TABLE_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### RETURN_SERVICE_DISCO_KEY

          public static final String RETURN_SERVICE_DISCO_KEY

      Field description
      See Also:
        Constant Field Values

    - #### SECRET_PROP_KEY

          public static final String SECRET_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### XMLNS

          public static final String XMLNS

      Field description
      See Also:
        Constant Field Values

    - #### RETURN_SERVICE_DISCO_VAL

          public static final boolean RETURN_SERVICE_DISCO_VAL

      Field description
      See Also:
        Constant Field Values

    - #### CONNECT_ALL_PROP_VAL

          public static final boolean CONNECT_ALL_PROP_VAL

      Field description
      See Also:
        Constant Field Values

    - #### COMPRESS_STREAM_PROP_VAL

          public static final boolean COMPRESS_STREAM_PROP_VAL

      Field description
      See Also:
        Constant Field Values

    - #### REPO_ITEM_EVENT_NAME

          public static final String REPO_ITEM_EVENT_NAME

      See Also:
        Constant Field Values

    - #### EVENTBUS_REPO_ITEM_EVENT_XMLNS

          public static final String EVENTBUS_REPO_ITEM_EVENT_XMLNS

      See Also:
        Constant Field Values

    - #### EVENTBUS_REPOSITORY_NOTIFICATIONS_ENABLED_KEY

          public static final String EVENTBUS_REPOSITORY_NOTIFICATIONS_ENABLED_KEY

      See Also:
        Constant Field Values

    - #### EVENTBUS_REPOSITORY_NOTIFICATIONS_ENABLED_VALUE

          public static final boolean EVENTBUS_REPOSITORY_NOTIFICATIONS_ENABLED_VALUE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ClusterConnectionManager

          public ClusterConnectionManager()

  - ### Method Detail

    - #### hashCodeForPacket

          public int hashCodeForPacket(Packet packet)

      Description copied from class: `AbstractMessageReceiver`
      This method decides how incoming packets are distributed among processing threads. Different components needs different distribution to efficient use all threads and avoid packets re-ordering.
      If there are N processing threads, packets are distributed among threads using following code:

           int threadNo = Math.abs(hashCodeForPacket(packet) % N);

      For a PubSub component, for example, a better packets distribution would be based on the PubSub channel name, for SM a better distribution is based on the destination address, etc....
      Specified by:
        `hashCodeForPacket` in interface `ClusterConnectionHandler`
      Overrides:
        `hashCodeForPacket` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `packet` - is a `Packet` which needs to be processed by some thread.
      Returns:
        a hash code generated for the input thread.

    - #### 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 `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `binds` - A mapping of key/value pairs, all of whose keys are Strings.

    - #### itemAdded

          public void itemAdded(ClusterRepoItem repoItem)

      Specified by:
        `itemAdded` in interface `RepositoryChangeListenerIfc<ClusterRepoItem>`

    - #### itemRemoved

          public void itemRemoved(ClusterRepoItem item)

      Specified by:
        `itemRemoved` in interface `RepositoryChangeListenerIfc<ClusterRepoItem>`

    - #### itemUpdated

          public void itemUpdated(ClusterRepoItem item)

      Specified by:
        `itemUpdated` in interface `RepositoryChangeListenerIfc<ClusterRepoItem>`

    - #### 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`
      Overrides:
        `nodeConnected` in class `BasicComponent`
      Parameters:
        `node` - is a hostname of a cluster node generating the event.

    - #### everyHour

          public void everyHour()

      Description copied from class: `AbstractMessageReceiver`
      Utility method executed precisely every hour. 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 hour. The overriding method must call the the super method first and only then run own code.
      Overrides:
        `everyHour` in class `AbstractMessageReceiver`

    - #### 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`
      Overrides:
        `nodeDisconnected` in class `BasicComponent`
      Parameters:
        `node` - is a hostname of a cluster node generating the event.

    - #### processingInThreads

          public int processingInThreads()

      Description copied from class: `AbstractMessageReceiver`
      Concurrency control method. Returns preferable number of threads set for this component.
      Overrides:
        `processingInThreads` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        preferable number of threads set for this component.

    - #### processingOutThreads

          public int processingOutThreads()

      Description copied from class: `AbstractMessageReceiver`
      Concurrency control method. Returns preferable number of threads set for this component.
      Overrides:
        `processingOutThreads` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        preferable number of threads set for this component.

    - #### processOutPacket

          public void processOutPacket(Packet packet)

      Description copied from class: `AbstractMessageReceiver`
      By default this method just copies the given packet between queue. This method operates on packets which have been already processed somehow by the component so usually the default action is the best one, however some components in rare cases may choose to process packets differently. In most cases this method should not be overridden.
      Overrides:
        `processOutPacket` in class `AbstractMessageReceiver`
      Parameters:
        `packet` - is an output packet which normally has to go to other component for further processing.

    - #### processPacket

          public void processPacket(Packet packet)

      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.
      Overrides:
        `processPacket` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `packet` - is an instance of the `Packet` class passed for processing.

    - #### processSocketData

          public Queue<Packet> processSocketData(XMPPIOService<Object> serv)

      Specified by:
        `processSocketData` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### processUndeliveredPacket

          public boolean processUndeliveredPacket(Packet packet,
                                                  Long stamp,
                                                  String errorMessage)

      Description copied from class: `ConnectionManager`
      Processes undelivered packets
      Specified by:
        `processUndeliveredPacket` in class `ConnectionManager<XMPPIOService<Object>>`
        `stamp` - - timestamp when packet was received to be written to XMPPIOService

    - #### reconnectionFailed

          public void reconnectionFailed(Map<String,Object> port_props)

      Specified by:
        `reconnectionFailed` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### schedulerThreads

          public int schedulerThreads()

      Description copied from class: `AbstractMessageReceiver`
      Method returns default number of threads used by SchedulerExecutorService
      Overrides:
        `schedulerThreads` in class `AbstractMessageReceiver`
      Returns:
        a value of `int`

    - #### serviceStarted

          public void serviceStarted(XMPPIOService<Object> serv)

      Overrides:
        `serviceStarted` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### serviceStopped

          public boolean serviceStopped(XMPPIOService<Object> service)

      Specified by:
        `serviceStopped` in interface `IOServiceListener<XMPPIOService<Object>>`
      Overrides:
        `serviceStopped` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### tlsHandshakeCompleted

          public void tlsHandshakeCompleted(XMPPIOService<Object> service)

      Specified by:
        `tlsHandshakeCompleted` in interface `IOServiceListener<XMPPIOService<Object>>`

    - #### updateConnectionDetails

          public void updateConnectionDetails(Map<String,Object> port_props)

      Overrides:
        `updateConnectionDetails` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### xmppStreamClosed

          public void xmppStreamClosed(XMPPIOService<Object> serv)

      Specified by:
        `xmppStreamClosed` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`

    - #### xmppStreamOpened

          public String[] xmppStreamOpened(XMPPIOService<Object> service,
                                           Map<String,String> attribs)

      Specified by:
        `xmppStreamOpened` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`

    - #### getDefaults

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

      Description copied from class: `AbstractMessageReceiver`
      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 `ConnectionManager<XMPPIOService<Object>>`
      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.

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

      Description copied from class: `AbstractMessageReceiver`
      Method returns component statistics. Please note, the method can be called every second by the server monitoring system therefore no extensive or lengthy calculations are allowed. If there are some statistics requiring lengthy operations like database access they must have `Level.FINEST` assigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collect `FINEST` statistics.
      Level guard code looks like the example below:

           if (list.checkLevel(Level.FINEST)) {
             // Some CPU intensive calculations or lengthy operations
             list.add(getName(), "Statistic description", stat_value, Level.FINEST);
           }

      This way you make sure your extensive operation is not executed every second by the monitoring system and does not affect the server performance.
      Specified by:
        `getStatistics` in interface `StatisticsContainerIfc`
      Overrides:
        `getStatistics` in class `ConnectionManager<XMPPIOService<Object>>`
      Parameters:
        `list` - is a `StatistcsList` where all statistics are stored.

    - #### 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`
      Overrides:
        `setClusterController` in class `BasicComponent`
      Parameters:
        `cl_controller` - cluster controller object used for cluster communication

    - #### setProperties

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

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

    - #### start

          public void start()

      Specified by:
        `start` in interface `MessageReceiver`
      Overrides:
        `start` in class `AbstractMessageReceiver`

    - #### stop

          public void stop()

      Description copied from class: `AbstractMessageReceiver`
      Method description
      Overrides:
        `stop` in class `ConnectionManager<XMPPIOService<Object>>`

    - #### serviceConnected

          protected void serviceConnected(XMPPIOService<Object> serv)

      Method description
      Parameters:
        `serv` -

    - #### writePacketToSocket

          protected boolean writePacketToSocket(Packet p)

      Overrides:
        `writePacketToSocket` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `boolean`

    - #### getDefPlainPorts

          protected int[] getDefPlainPorts()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getDefPlainPorts` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `int[]`

    - #### getDefTrafficThrottling

          protected String getDefTrafficThrottling()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getDefTrafficThrottling` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `String`

    - #### getMaxInactiveTime

          protected long getMaxInactiveTime()

      Description copied from class: `ConnectionManager`
      Method description
      Specified by:
        `getMaxInactiveTime` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `long`

    - #### getMaxQueueSize

          protected Integer getMaxQueueSize(int def)

      Description copied from class: `AbstractMessageReceiver`
      Method description
      Overrides:
        `getMaxQueueSize` in class `AbstractMessageReceiver`
      Returns:
        a value of `Integer`

    - #### getParamsForPort

          protected Map<String,Object> getParamsForPort(int port)

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `getParamsForPort` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `Map<String,Object>`

    - #### getXMPPIOServiceInstance

          protected XMPPIOService<Object> getXMPPIOServiceInstance()

      Description copied from class: `ConnectionManager`
      Method description
      Specified by:
        `getXMPPIOServiceInstance` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `IO`

    - #### isHighThroughput

          protected boolean isHighThroughput()

      Description copied from class: `ConnectionManager`
      Method description
      Overrides:
        `isHighThroughput` in class `ConnectionManager<XMPPIOService<Object>>`
      Returns:
        a value of `boolean`

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