Package tigase.server.bosh

# Class BoshConnectionManager

java.lang.Object
tigase.server.BasicComponent
tigase.server.AbstractMessageReceiver
tigase.server.ConnectionManager<XMPPIOService<Object>>
tigase.server.xmppclient.ClientConnectionManager
tigase.server.bosh.BoshConnectionManager

All Implemented Interfaces:
  `ClusteredComponentIfc`, `Configurable`, `XMPPService`, `ConfigurationChangedAware`, `Initializable`, `RegistrarBean`, `IOServiceListener<XMPPIOService<Object>>`, `BoshIOService.ConfigProvider`, `BoshSessionTaskHandler`, `MessageReceiver`, `PacketWriterWithTimeout`, `ServerComponent`, `StatisticsContainer`, `StatisticsContainerIfc`, `VHostListener`, `XMPPIOServiceListener<XMPPIOService<Object>>`

Direct Known Subclasses:
  `BoshConnectionClustered`

@Bean(name="bosh", parent=Kernel.class, active=true) @ConfigType({DefaultMode,ConnectionManagersMode}) @ClusterModeRequired(active=false) public class BoshConnectionManager extends ClientConnectionManager implements BoshSessionTaskHandler, BoshIOService.ConfigProvider
Describe class BoshConnectionManager here.
Created: Sat Jun 2 12:24:29 2007

Author:
  Artur Hefczyc

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected static enum`
  `BoshConnectionManager.BOSH_OPERATION_TYPE`

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

  `ConnectionManager.LIMIT_ACTION, ConnectionManager.PortConfigBean, ConnectionManager.PortsConfigBean, ConnectionManager.SecPortConfigBean, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPE`

  ## 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
  `static final String`
  `BOSH_CLOSE_CONNECTION_PROP_KEY`
  `static final String`
  `BOSH_EXTRA_HEADERS_FILE_PROP_KEY`
  `static final String`
  `BOSH_EXTRA_HEADERS_FILE_PROP_VAL`
  `static final String`
  `CLIENT_ACCESS_POLICY_FILE_PROP_KEY`
  `static final String`
  `CLIENT_ACCESS_POLICY_FILE_PROP_VAL`
  `protected final Map<UUID,BoshSession>`
  `sessions`

  ### Fields inherited from class tigase.server.xmppclient.ClientConnectionManager

  `eventBus, FORCE_REDIRECT_TO_KEY, routings, see_other_host_strategy`

  ### 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, kernel, 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_ST_PROP_VAL, 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_NEW_CONNECTIONS_THROTTLING_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, serviceConnectedTimeout, SOCKET_BUFFER_HT_PROP_VAL, SOCKET_BUFFER_ST_PROP_VAL, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, trafficThrottling, 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, 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
  `BoshConnectionManager()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addOutPackets(Queue<Packet> out_results, BoshSession bs)`
  Method adds packets to the output queue stamping it with the appropriate `BoshSession` data
  `boolean`
  `addOutStreamClosed(Packet packet, BoshSession bs, boolean withTimeout)`
  `boolean`
  `addOutStreamOpen(Packet packet, BoshSession bs)`
  `void`
  `cancelSendQueueTask(BoshSendQueueTask tt)`
  `void`
  `cancelTask(BoshTask tt)`
  `protected JID`
  `changeDataReceiver(Packet packet, JID newAddress, String command_sessionId, XMPPIOService<Object> serv)`
  `protected boolean`
  `enableServiceConnectedTimeout(XMPPIOService<Object> service)`
  `protected BoshSession`
  `getBoshSession(JID jid)`
  Method retrieves `BoshSession` related to the particular user address
  `String`
  `getClientAccessPolicy()`
  `protected int[]`
  `getDefPlainPorts()`
  `protected int[]`
  `getDefSSLPorts()`
  `String`
  `getDiscoCategoryType()`
  Method returns component category type used for service discovery responses.
  `String`
  `getDiscoDescription()`
  Method returns description used for service discovery responses.
  `String`
  `getExtraHeaders()`
  `JID`
  `getJidForBoshSession(BoshSession bs)`
  Returns full jid of passed BoshSession instance
  `protected long`
  `getMaxInactiveTime()`
  Method `getMaxInactiveTime` returns max keep-alive time for inactive connection.
  `Element`
  `getSeeOtherHostError(Packet packet, BareJID destination)`
  `BareJID`
  `getSeeOtherHostForJID(Packet packet, BareJID fromJID, SeeOtherHostIfc.Phase ph)`
  `void`
  `getStatistics(StatisticsList list)`
  Method returns component statistics.
  `protected BoshIOService`
  `getXMPPIOServiceInstance()`
  `void`
  `initBindings(Bindings binds)`
  Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
  `void`
  `initialize()`
  Method will be called, when bean will be created, configured and ready to use.
  `boolean`
  `isCloseConnections()`
  `protected ReceiverTimeoutHandler`
  `newStartedHandler()`
  `protected Map<String,String>`
  `preBindSession(Map<String,String> attr)`
  `protected void`
  `processCommand(Packet packet)`
  `void`
  `processPacket(Packet packet)`
  This is the main `Packet` processing method.
  `Queue<Packet>`
  `processSocketData(XMPPIOService<Object> srv)`
  `BoshSendQueueTask`
  `scheduleSendQueueTask(BoshSession bs, long delay)`
  `BoshTask`
  `scheduleTask(BoshSession bs, long delay)`
  `void`
  `serviceStarted(XMPPIOService<Object> service)`
  `boolean`
  `serviceStopped(XMPPIOService<Object> xmppService)`
  `void`
  `setClientAccessPolicyFile(String clientAccessPolicyFile)`
  `void`
  `setExtraHeadersFile(String extraHeadersFile)`
  `void`
  `setSidLoggerLevel(String loggerLevel)`
  `protected static void`
  `setupSidlogger(Level lvl)`
  `protected void`
  `setupWatchdogThread()`
  `protected boolean`
  `writePacketToSocket(Packet packet)`
  `void`
  `writeRawData(BoshIOService ios, String data)`
  `void`
  `xmppStreamClosed(XMPPIOService<Object> serv)`
  `String[]`
  `xmppStreamOpened(XMPPIOService<Object> serv, Map<String,String> attribs)`

  ### Methods inherited from class tigase.server.xmppclient.ClientConnectionManager

  `getClientTrustManagerFactory, getMaxQueueSize, getSeeOtherHostInstance, hashCodeForPacket, isAllowed, newStoppedHandler, nodeShutdown, prepareSeeOtherHost, prepareStreamClose, prepareStreamError, prepareStreamError, prepareStreamOpen, preprocessStreamFeatures, processUndeliveredPacket, reconnectionFailed, schedulerThreads, setRegistrationThrottling, setSee_other_host_strategy, socketAccepted, start, stop, tlsHandshakeCompleted, xmppStreamError`

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

  `addWaitingTask, beanConfigurationChanged, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, everyMinute, getDefPorts, getDefTrafficThrottling, getFlashCrossDomainPolicy, getNet_buffer_limit, getParamsForPort, getPortsConfigBean, getServiceId, getServiceId, getTrafficThrottling, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, isHighThroughput, newWatchdog, packetsReady, processingInThreads, processingOutThreads, register, release, releaseListener, serviceConnected, setFlashCrossDomainPolicyFile, setName, setNet_buffer_limit, setProcessors, setTrafficThrottling, setWatchdogPingType, startService, unregister, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawData`

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

  `addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, removeRegexRouting, setCompId, setIncoming_filters, setOutgoing_filters, setParent, setSchedulerThreads_size, updateFiltersName`

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

  `addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setProperties, setScriptsBaseDir, 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.bosh.BoshSessionTaskHandler

  `getDefHostName, processUndeliveredPacket`

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

  `getDefHostName`

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

  `getComponentId, getComponentInfo, getName, isInitializationComplete`

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

  `getName`

- ## Field Details

  - ### BOSH_CLOSE_CONNECTION_PROP_KEY

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

  - ### BOSH_EXTRA_HEADERS_FILE_PROP_KEY

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

  - ### BOSH_EXTRA_HEADERS_FILE_PROP_VAL

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

  - ### CLIENT_ACCESS_POLICY_FILE_PROP_KEY

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

  - ### CLIENT_ACCESS_POLICY_FILE_PROP_VAL

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

  - ### sessions

    protected final Map<UUID,BoshSession> sessions

- ## Constructor Details

  - ### BoshConnectionManager

    public BoshConnectionManager()

- ## Method Details

  - ### setupSidlogger

    protected static void setupSidlogger(Level lvl)

  - ### addOutStreamClosed

    public boolean addOutStreamClosed(Packet packet, BoshSession bs, boolean withTimeout)
    Specified by:
      `addOutStreamClosed` in interface `BoshSessionTaskHandler`

  - ### addOutStreamOpen

    public boolean addOutStreamOpen(Packet packet, BoshSession bs)
    Specified by:
      `addOutStreamOpen` in interface `BoshSessionTaskHandler`

  - ### cancelSendQueueTask

    public void cancelSendQueueTask(BoshSendQueueTask tt)
    Specified by:
      `cancelSendQueueTask` in interface `BoshSessionTaskHandler`

  - ### cancelTask

    public void cancelTask(BoshTask tt)
    Specified by:
      `cancelTask` in interface `BoshSessionTaskHandler`

  - ### enableServiceConnectedTimeout

    protected boolean enableServiceConnectedTimeout(XMPPIOService<Object> service)
    Overrides:
      `enableServiceConnectedTimeout` in class `ConnectionManager<XMPPIOService<Object>>`

  - ### 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 `ClientConnectionManager`
    Parameters:
      `packet` - is an instance of the `Packet` class passed for processing.

  - ### processSocketData

    public Queue<Packet> processSocketData(XMPPIOService<Object> srv)
    Overrides:
      `processSocketData` in class `ClientConnectionManager`

  - ### scheduleSendQueueTask

    public BoshSendQueueTask scheduleSendQueueTask(BoshSession bs, long delay)
    Specified by:
      `scheduleSendQueueTask` in interface `BoshSessionTaskHandler`

  - ### scheduleTask

    public BoshTask scheduleTask(BoshSession bs, long delay)
    Specified by:
      `scheduleTask` in interface `BoshSessionTaskHandler`

  - ### serviceStarted

    public void serviceStarted(XMPPIOService<Object> service)
    Overrides:
      `serviceStarted` in class `ClientConnectionManager`

  - ### serviceStopped

    public boolean serviceStopped(XMPPIOService<Object> xmppService)
    Specified by:
      `serviceStopped` in interface `IOServiceListener<XMPPIOService<Object>>`
    Overrides:
      `serviceStopped` in class `ClientConnectionManager`

  - ### writeRawData

    public void writeRawData(BoshIOService ios, String data)
    Specified by:
      `writeRawData` in interface `BoshSessionTaskHandler`

  - ### xmppStreamClosed

    public void xmppStreamClosed(XMPPIOService<Object> serv)
    Specified by:
      `xmppStreamClosed` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`
    Overrides:
      `xmppStreamClosed` in class `ClientConnectionManager`

  - ### xmppStreamOpened

    public String[] xmppStreamOpened(XMPPIOService<Object> serv, Map<String,String> attribs)
    Specified by:
      `xmppStreamOpened` in interface `XMPPIOServiceListener<XMPPIOService<Object>>`
    Overrides:
      `xmppStreamOpened` in class `ClientConnectionManager`

  - ### getDiscoCategoryType

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

  - ### getDiscoDescription

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

  - ### getJidForBoshSession

    public JID getJidForBoshSession(BoshSession bs)
    Returns full jid of passed BoshSession instance
    Specified by:
      `getJidForBoshSession` in interface `BoshSessionTaskHandler`
    Parameters:
      `bs` - `BoshSession` for which JID should be retrieved
    Returns:
      JID address related to particular `BoshSession`

  - ### getSeeOtherHostError

    public Element getSeeOtherHostError(Packet packet, BareJID destination)
    Specified by:
      `getSeeOtherHostError` in interface `BoshSessionTaskHandler`

  - ### getSeeOtherHostForJID

    public BareJID getSeeOtherHostForJID(Packet packet, BareJID fromJID, SeeOtherHostIfc.Phase ph)
    Specified by:
      `getSeeOtherHostForJID` in interface `BoshSessionTaskHandler`

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

  - ### setSidLoggerLevel

    public void setSidLoggerLevel(String loggerLevel)

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

  - ### 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`
    Overrides:
      `initialize` in class `BasicComponent`

  - ### isCloseConnections

    public boolean isCloseConnections()
    Specified by:
      `isCloseConnections` in interface `BoshIOService.ConfigProvider`

  - ### getClientAccessPolicy

    public String getClientAccessPolicy()
    Specified by:
      `getClientAccessPolicy` in interface `BoshIOService.ConfigProvider`

  - ### setClientAccessPolicyFile

    public void setClientAccessPolicyFile(String clientAccessPolicyFile)

  - ### getExtraHeaders

    public String getExtraHeaders()
    Specified by:
      `getExtraHeaders` in interface `BoshIOService.ConfigProvider`

  - ### setExtraHeadersFile

    public void setExtraHeadersFile(String extraHeadersFile)

  - ### setupWatchdogThread

    protected void setupWatchdogThread()
    Overrides:
      `setupWatchdogThread` in class `ConnectionManager<XMPPIOService<Object>>`

  - ### preBindSession

    protected Map<String,String> preBindSession(Map<String,String> attr)

  - ### addOutPackets

    protected void addOutPackets(Queue<Packet> out_results, BoshSession bs)
    Method adds packets to the output queue stamping it with the appropriate `BoshSession` data
    Parameters:
      `out_results` - collection of `Packet` objects to be added to queue
      `bs` - related `BoshSession`

  - ### changeDataReceiver

    protected JID changeDataReceiver(Packet packet, JID newAddress, String command_sessionId, XMPPIOService<Object> serv)
    Overrides:
      `changeDataReceiver` in class `ClientConnectionManager`

  - ### newStartedHandler

    protected ReceiverTimeoutHandler newStartedHandler()
    Overrides:
      `newStartedHandler` in class `ClientConnectionManager`

  - ### processCommand

    protected void processCommand(Packet packet)
    Overrides:
      `processCommand` in class `ClientConnectionManager`

  - ### writePacketToSocket

    protected boolean writePacketToSocket(Packet packet)
    Overrides:
      `writePacketToSocket` in class `ConnectionManager<XMPPIOService<Object>>`

  - ### getBoshSession

    protected BoshSession getBoshSession(JID jid)
    Method retrieves `BoshSession` related to the particular user address
    Parameters:
      `jid` - address for which `BoshSession` should be returned
    Returns:
      a value of `BoshSession`

  - ### getDefPlainPorts

    protected int[] getDefPlainPorts()
    Overrides:
      `getDefPlainPorts` in class `ClientConnectionManager`

  - ### getDefSSLPorts

    protected int[] getDefSSLPorts()
    Overrides:
      `getDefSSLPorts` in class `ClientConnectionManager`

  - ### getMaxInactiveTime

    protected long getMaxInactiveTime()
    Method `getMaxInactiveTime` returns max keep-alive time for inactive connection. For Bosh it does not make sense to keep the idle connection longer than 10 minutes.
    Overrides:
      `getMaxInactiveTime` in class `ClientConnectionManager`
    Returns:
      a `long` value

  - ### getXMPPIOServiceInstance

    protected BoshIOService getXMPPIOServiceInstance()
    Overrides:
      `getXMPPIOServiceInstance` in class `ClientConnectionManager`