Package tigase.server.xmppserver
Class S2SConnectionManager
- All Implemented Interfaces:
ClusteredComponentIfc,Configurable,XMPPService,ConfigurationChangedAware,Initializable,RegistrarBean,IOServiceListener<S2SIOService>,MessageReceiver,PacketWriterWithTimeout,ServerComponent,S2SConnectionHandlerIfc<S2SIOService>,StatisticsContainer,StatisticsContainerIfc,VHostListener,XMPPIOServiceListener<S2SIOService>
@Bean(name="s2s",
parent=Kernel.class,
active=true)
@ConfigType({DefaultMode,ConnectionManagersMode})
public class S2SConnectionManager
extends ConnectionManager<S2SIOService>
implements S2SConnectionHandlerIfc<S2SIOService>
Created: Jun 14, 2010 11:59:38 AM
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class tigase.server.ConnectionManager
ConnectionManager.LIMIT_ACTION, ConnectionManager.PortConfigBean, ConnectionManager.PortsConfigBean, ConnectionManager.SecPortConfigBean, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPENested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtensionNested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout
PacketWriterWithTimeout.Handler -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final intstatic final Stringprotected Map<CID, CIDConnections> Outgoing and incoming connections for a given domains pair (localdomain, remotedomain)protected static final Stringprotected static final Stringstatic final Stringstatic final Stringstatic final intstatic final Stringstatic final intstatic final Stringstatic final intstatic final Stringstatic final longstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields 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, 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_VALFields 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, SECONDFields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManagerFields 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_ACKFields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddOutPacket(Packet packet) voidaddTimerTask(TimerTask task, long delay, TimeUnit unit) Method queues and executes timer tasks using ScheduledExecutorService which allows using more than one thread for executing tasks.protected CIDConnectionsgetCIDConnections(CID cid, boolean createNew) protected int[]protected StringMethod from ConnectionManager is overriden as it uses local value S2S_HT_TRAFFIC_THROTTLING_PROP_VALMethod returns component category type used for service discovery responses.Method returns description used for service discovery responses.protected longgetSecretForDomain(String domain) Returns secret used for particular domaingetServerNameForDomain(String domain) voidgetStatistics(StatisticsList list) Method returns component statistics.Returns stream features available for particular S2S connection.protected S2SIOServicebooleanIndicates whether the component can handle all packets to non-local domains.inthashCodeForPacket(Packet packet) This method decides how incoming packets are distributed among processing threads.voidinitBindings(Bindings binds) Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoidinitNewConnection(Map<String, Object> port_props) protected booleanbooleanbooleanisTlsRequired(String domain) Checks if TLS is required for particular domainbooleanvoidprocessPacket(Packet packet) This is the mainPacketprocessing method.booleanprocessUndeliveredPacket(Packet packet, Long stamp, String errorMessage) Processes undelivered packetsvoidreconnectionFailed(Map<String, Object> port_props) intMethod returns default number of threads used by SchedulerExecutorServicebooleansendVerifyResult(String elem_name, CID connCid, CID keyCid, Boolean valid, String key_sessionId, String serv_sessionId, String cdata, boolean handshakingOnly) booleansendVerifyResult(String elem_name, CID connCid, CID keyCid, Boolean valid, String key_sessionId, String serv_sessionId, String cdata, boolean handshakingOnly, Element errorElem) voidserviceConnected(S2SIOService service) voidserviceStarted(S2SIOService serv) booleanserviceStopped(S2SIOService serv) voidsetProcessors(List<S2SProcessor> processors) voidvoidvalidateCIDConnection(CID cid) voidwriteRawData(S2SIOService ios, String data) voidxmppStreamClosed(S2SIOService serv) String[]xmppStreamOpened(S2SIOService serv, Map<String, String> attribs) Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, beanConfigurationChanged, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, enableServiceConnectedTimeout, everyMinute, getDefPorts, getDefSSLPorts, getFlashCrossDomainPolicy, getNet_buffer_limit, getParamsForPort, getPortsConfigBean, getServiceId, getServiceId, getTrafficThrottling, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, newWatchdog, packetsReady, processingInThreads, processingOutThreads, redeliverWaitingPackets, register, release, releaseListener, setFlashCrossDomainPolicyFile, setName, setNet_buffer_limit, setProcessors, setTrafficThrottling, setupWatchdogThread, setWatchdogPingType, shouldRedeliverWaitingPackets, socketAccepted, start, startService, stop, unregister, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writePacketToSocket, xmppStreamErrorMethods inherited from class tigase.server.AbstractMessageReceiver
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getMaxQueueSize, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, removeRegexRouting, setCompId, setIncoming_filters, setOutgoing_filters, setParent, setSchedulerThreads_size, updateFiltersNameMethods 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, initialize, 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, updateServiceEntityMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tigase.server.MessageReceiver
getDefHostNameMethods inherited from interface tigase.server.xmppserver.S2SConnectionHandlerIfc
getDefHostName, writePacketsToSocket, writePacketToSocketMethods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, isInitializationCompleteMethods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
Field Details
-
CID_CONNECTIONS_BIND
- See Also:
-
CID_KEY
- See Also:
-
CID_CONNECTIONS_TASKS_THREADS_KEY
- See Also:
-
MAX_CONNECTION_INACTIVITY_TIME_PROP_KEY
- See Also:
-
MAX_INCOMING_CONNECTIONS_PROP_KEY
- See Also:
-
MAX_INCOMING_CONNECTIONS_PROP_VAL
public static final int MAX_INCOMING_CONNECTIONS_PROP_VAL- See Also:
-
MAX_OUT_PER_IP_CONNECTIONS_PROP_KEY
- See Also:
-
MAX_OUT_PER_IP_CONNECTIONS_PROP_VAL
public static final int MAX_OUT_PER_IP_CONNECTIONS_PROP_VAL- See Also:
-
MAX_OUT_TOTAL_CONNECTIONS_PROP_KEY
- See Also:
-
MAX_OUT_TOTAL_CONNECTIONS_PROP_VAL
public static final int MAX_OUT_TOTAL_CONNECTIONS_PROP_VAL- See Also:
-
MAX_PACKET_WAITING_TIME_PROP_KEY
- See Also:
-
S2S_CONNECTION_SELECTOR_PROP_KEY
- See Also:
-
S2S_CONNECTION_SELECTOR_PROP_VAL
- See Also:
-
S2S_DOMAIN_MAPPING_PROP_KEY
- See Also:
-
S2S_DOMAIN_MAPPING_PROP_VAL
- See Also:
-
S2S_HT_TRAFFIC_THROTTLING_PROP_VAL
- See Also:
-
MAX_PACKET_WAITING_TIME_PROP_VAL
public static final long MAX_PACKET_WAITING_TIME_PROP_VAL- See Also:
-
CID_CONNECTIONS_TASKS_THREADS_VAL
public static final int CID_CONNECTIONS_TASKS_THREADS_VAL -
XMLNS_SERVER_VAL
- See Also:
-
DB_RESULT_EL_NAME
- See Also:
-
DB_VERIFY_EL_NAME
- See Also:
-
cidConnections
Outgoing and incoming connections for a given domains pair (localdomain, remotedomain)
-
-
Constructor Details
-
S2SConnectionManager
public S2SConnectionManager()
-
-
Method Details
-
addOutPacket
- Specified by:
addOutPacketin interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
addOutPacketin classAbstractMessageReceiver
-
addTimerTask
Description copied from class:AbstractMessageReceiverMethod queues and executes timer tasks using ScheduledExecutorService which allows using more than one thread for executing tasks.- Specified by:
addTimerTaskin interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
addTimerTaskin classAbstractMessageReceiver
-
handlesNonLocalDomains
public boolean handlesNonLocalDomains()Description copied from interface:VHostListenerIndicates 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:
handlesNonLocalDomainsin interfaceVHostListener- Overrides:
handlesNonLocalDomainsin classBasicComponent- Returns:
- 'true' if the component accepts packets to non-local domains 'false' otherwise.
-
hashCodeForPacket
Description copied from class:AbstractMessageReceiverThis 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....- Overrides:
hashCodeForPacketin classConnectionManager<S2SIOService>- Parameters:
packet- is aPacketwhich needs to be processed by some thread.- Returns:
- a hash code generated for the input thread.
-
initBindings
Description copied from class:BasicComponentInitialize a mapping of key/value pairs which can be used in scripts loaded by the server- Overrides:
initBindingsin classConnectionManager<S2SIOService>- Parameters:
binds- A mapping of key/value pairs, all of whose keys are Strings.
-
initNewConnection
- Specified by:
initNewConnectionin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
processPacket
Description copied from class:AbstractMessageReceiverThis is the mainPacketprocessing 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, thePacketinstance may be processed by different parts of the server, different components or plugins at the same time. Therefore this is very important to tread thePacketinstance 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 usingaddOutPacket(Packet)method.- Overrides:
processPacketin classConnectionManager<S2SIOService>- Parameters:
packet- is an instance of thePacketclass passed for processing.
-
processSocketData
- Specified by:
processSocketDatain classConnectionManager<S2SIOService>
-
processUndeliveredPacket
Description copied from class:ConnectionManagerProcesses undelivered packets- Specified by:
processUndeliveredPacketin classConnectionManager<S2SIOService>- Parameters:
stamp- - timestamp when packet was received to be written to XMPPIOService
-
reconnectionFailed
- Specified by:
reconnectionFailedin classConnectionManager<S2SIOService>
-
schedulerThreads
public int schedulerThreads()Description copied from class:AbstractMessageReceiverMethod returns default number of threads used by SchedulerExecutorService- Overrides:
schedulerThreadsin classAbstractMessageReceiver- Returns:
- a value of
int
-
sendVerifyResult
public boolean sendVerifyResult(String elem_name, CID connCid, CID keyCid, Boolean valid, String key_sessionId, String serv_sessionId, String cdata, boolean handshakingOnly) - Specified by:
sendVerifyResultin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
sendVerifyResult
public boolean sendVerifyResult(String elem_name, CID connCid, CID keyCid, Boolean valid, String key_sessionId, String serv_sessionId, String cdata, boolean handshakingOnly, Element errorElem) - Specified by:
sendVerifyResultin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
serviceConnected
- Specified by:
serviceConnectedin interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
serviceConnectedin classConnectionManager<S2SIOService>
-
serviceStarted
- Overrides:
serviceStartedin classConnectionManager<S2SIOService>
-
serviceStopped
- Specified by:
serviceStoppedin interfaceIOServiceListener<S2SIOService>- Overrides:
serviceStoppedin classConnectionManager<S2SIOService>
-
tlsHandshakeCompleted
- Specified by:
tlsHandshakeCompletedin interfaceIOServiceListener<S2SIOService>
-
writeRawData
- Specified by:
writeRawDatain interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
writeRawDatain classConnectionManager<S2SIOService>
-
xmppStreamClosed
- Specified by:
xmppStreamClosedin interfaceXMPPIOServiceListener<S2SIOService>
-
xmppStreamOpened
- Specified by:
xmppStreamOpenedin interfaceXMPPIOServiceListener<S2SIOService>
-
getCIDConnections
public CIDConnections getCIDConnections(CID cid, boolean createNew) throws NotLocalhostException, LocalhostException - Specified by:
getCIDConnectionsin interfaceS2SConnectionHandlerIfc<S2SIOService>- Throws:
NotLocalhostExceptionLocalhostException
-
validateCIDConnection
- Specified by:
validateCIDConnectionin interfaceS2SConnectionHandlerIfc<S2SIOService>- Throws:
NotLocalhostExceptionLocalhostException
-
getConnectionOpenerService
- Specified by:
getConnectionOpenerServicein interfaceS2SConnectionHandlerIfc<S2SIOService>
-
getDiscoCategoryType
Description copied from class:BasicComponentMethod returns component category type used for service discovery responses.- Overrides:
getDiscoCategoryTypein classBasicComponent- Returns:
- category type of a component
-
getDiscoDescription
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classBasicComponent- Returns:
- description of a component
-
getSecretForDomain
Returns secret used for particular domain
Secret is used in generation of dialback key- Specified by:
getSecretForDomainin interfaceS2SConnectionHandlerIfc<S2SIOService>- Parameters:
domain- for which secret should be returned- Returns:
- for particular domain
- Throws:
NotLocalhostException- if the domain is not local
-
getServerNameForDomain
- Specified by:
getServerNameForDomainin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
getStatistics
Description copied from class:AbstractMessageReceiverMethod 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 haveLevel.FINESTassigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collectFINESTstatistics.
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:
getStatisticsin interfaceStatisticsContainerIfc- Overrides:
getStatisticsin classConnectionManager<S2SIOService>- Parameters:
list- is aStatistcsListwhere all statistics are stored.
-
getStreamFeatures
Description copied from interface:S2SConnectionHandlerIfcReturns stream features available for particular S2S connection.- Specified by:
getStreamFeaturesin interfaceS2SConnectionHandlerIfc<S2SIOService>- Parameters:
serv-S2SIOServicefor which stream features should be retrieved- Returns:
- list of stream features
-
isTlsRequired
Description copied from interface:S2SConnectionHandlerIfcChecks if TLS is required for particular domain- Specified by:
isTlsRequiredin interfaceS2SConnectionHandlerIfc<S2SIOService>- Parameters:
domain- for which secret should be returned- Returns:
- boolean indicating whether TLS is required
-
isTlsWantClientAuthEnabled
public boolean isTlsWantClientAuthEnabled()- Specified by:
isTlsWantClientAuthEnabledin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
isTlsNeedClientAuthEnabled
public boolean isTlsNeedClientAuthEnabled()- Specified by:
isTlsNeedClientAuthEnabledin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
setProcessors
-
getDefPlainPorts
protected int[] getDefPlainPorts()- Overrides:
getDefPlainPortsin classConnectionManager<S2SIOService>
-
getDefTrafficThrottling
Method from ConnectionManager is overriden as it uses local value S2S_HT_TRAFFIC_THROTTLING_PROP_VAL- Overrides:
getDefTrafficThrottlingin classConnectionManager<S2SIOService>
-
getMaxInactiveTime
protected long getMaxInactiveTime()- Specified by:
getMaxInactiveTimein classConnectionManager<S2SIOService>
-
getXMPPIOServiceInstance
- Specified by:
getXMPPIOServiceInstancein classConnectionManager<S2SIOService>
-
isHighThroughput
protected boolean isHighThroughput()- Overrides:
isHighThroughputin classConnectionManager<S2SIOService>
-
createNewCIDConnections
protected CIDConnections createNewCIDConnections(CID cid) throws NotLocalhostException, LocalhostException
-