Package tigase.server.xmppserver
Class S2SConnectionManager
- java.lang.Object
-
- tigase.server.BasicComponent
-
- tigase.server.AbstractMessageReceiver
-
- tigase.server.ConnectionManager<S2SIOService>
-
- tigase.server.xmppserver.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 Classes Modifier and Type Class Description static classS2SConnectionManager.DomainServerNameMapper-
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 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, 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 S2SConnectionManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddOutPacket(Packet packet)voidaddTimerTask(TimerTask task, long delay, java.util.concurrent.TimeUnit unit)Method queues and executes timer tasks using ScheduledExecutorService which allows using more than one thread for executing tasks.protected CIDConnectionscreateNewCIDConnections(CID cid)CIDConnectionsgetCIDConnections(CID cid, boolean createNew)CIDConnections.CIDConnectionsOpenerServicegetConnectionOpenerService()protected int[]getDefPlainPorts()protected java.lang.StringgetDefTrafficThrottling()Method from ConnectionManager is overriden as it uses local value S2S_HT_TRAFFIC_THROTTLING_PROP_VALjava.lang.StringgetDiscoCategoryType()Method returns component category type used for service discovery responses.java.lang.StringgetDiscoDescription()Method returns description used for service discovery responses.protected longgetMaxInactiveTime()java.lang.StringgetSecretForDomain(java.lang.String domain)Returns secret used for particular domainjava.lang.StringgetServerNameForDomain(java.lang.String domain)voidgetStatistics(StatisticsList list)Method returns component statistics.java.util.List<Element>getStreamFeatures(S2SIOService serv)Returns stream features available for particular S2S connection.protected S2SIOServicegetXMPPIOServiceInstance()booleanhandlesNonLocalDomains()Indicates 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(javax.script.Bindings binds)Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoidinitNewConnection(java.util.Map<java.lang.String,java.lang.Object> port_props)protected booleanisHighThroughput()booleanisTlsNeedClientAuthEnabled()booleanisTlsRequired(java.lang.String domain)Checks if TLS is required for particular domainbooleanisTlsWantClientAuthEnabled()voidprocessPacket(Packet packet)This is the mainPacketprocessing method.java.util.Queue<Packet>processSocketData(S2SIOService serv)booleanprocessUndeliveredPacket(Packet packet, java.lang.Long stamp, java.lang.String errorMessage)Processes undelivered packetsvoidreconnectionFailed(java.util.Map<java.lang.String,java.lang.Object> port_props)intschedulerThreads()Method returns default number of threads used by SchedulerExecutorServicebooleansendVerifyResult(java.lang.String elem_name, CID connCid, CID keyCid, java.lang.Boolean valid, java.lang.String key_sessionId, java.lang.String serv_sessionId, java.lang.String cdata, boolean handshakingOnly)booleansendVerifyResult(java.lang.String elem_name, CID connCid, CID keyCid, java.lang.Boolean valid, java.lang.String key_sessionId, java.lang.String serv_sessionId, java.lang.String cdata, boolean handshakingOnly, Element errorElem)voidserviceConnected(S2SIOService service)voidserviceStarted(S2SIOService serv)booleanserviceStopped(S2SIOService serv)voidsetProcessors(java.util.List<S2SProcessor> processors)voidtlsHandshakeCompleted(S2SIOService serv)voidwriteRawData(S2SIOService ios, java.lang.String data)voidxmppStreamClosed(S2SIOService serv)java.lang.String[]xmppStreamOpened(S2SIOService serv, java.util.Map<java.lang.String,java.lang.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, register, release, releaseListener, setFlashCrossDomainPolicyFile, setName, setNet_buffer_limit, setProcessors, setTrafficThrottling, setupWatchdogThread, socketAccepted, start, startService, stop, unregister, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writePacketToSocket, xmppStreamError
-
Methods 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, 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, 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, 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.MessageReceiver
getDefHostName
-
Methods inherited from interface tigase.server.xmppserver.S2SConnectionHandlerIfc
getDefHostName, writePacketsToSocket, writePacketToSocket
-
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, isInitializationComplete
-
Methods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
-
-
-
Field Detail
-
CID_CONNECTIONS_BIND
public static final java.lang.String CID_CONNECTIONS_BIND
- See Also:
- Constant Field Values
-
CID_CONNECTIONS_TASKS_THREADS_KEY
public static final java.lang.String CID_CONNECTIONS_TASKS_THREADS_KEY
- See Also:
- Constant Field Values
-
MAX_CONNECTION_INACTIVITY_TIME_PROP_KEY
public static final java.lang.String MAX_CONNECTION_INACTIVITY_TIME_PROP_KEY
- See Also:
- Constant Field Values
-
MAX_INCOMING_CONNECTIONS_PROP_KEY
public static final java.lang.String MAX_INCOMING_CONNECTIONS_PROP_KEY
- See Also:
- Constant Field Values
-
MAX_INCOMING_CONNECTIONS_PROP_VAL
public static final int MAX_INCOMING_CONNECTIONS_PROP_VAL
- See Also:
- Constant Field Values
-
MAX_OUT_PER_IP_CONNECTIONS_PROP_KEY
public static final java.lang.String MAX_OUT_PER_IP_CONNECTIONS_PROP_KEY
- See Also:
- Constant Field Values
-
MAX_OUT_PER_IP_CONNECTIONS_PROP_VAL
public static final int MAX_OUT_PER_IP_CONNECTIONS_PROP_VAL
- See Also:
- Constant Field Values
-
MAX_OUT_TOTAL_CONNECTIONS_PROP_KEY
public static final java.lang.String MAX_OUT_TOTAL_CONNECTIONS_PROP_KEY
- See Also:
- Constant Field Values
-
MAX_OUT_TOTAL_CONNECTIONS_PROP_VAL
public static final int MAX_OUT_TOTAL_CONNECTIONS_PROP_VAL
- See Also:
- Constant Field Values
-
MAX_PACKET_WAITING_TIME_PROP_KEY
public static final java.lang.String MAX_PACKET_WAITING_TIME_PROP_KEY
- See Also:
- Constant Field Values
-
S2S_CONNECTION_SELECTOR_PROP_KEY
public static final java.lang.String S2S_CONNECTION_SELECTOR_PROP_KEY
- See Also:
- Constant Field Values
-
S2S_CONNECTION_SELECTOR_PROP_VAL
public static final java.lang.String S2S_CONNECTION_SELECTOR_PROP_VAL
- See Also:
- Constant Field Values
-
S2S_DOMAIN_MAPPING_PROP_KEY
public static final java.lang.String S2S_DOMAIN_MAPPING_PROP_KEY
- See Also:
- Constant Field Values
-
S2S_DOMAIN_MAPPING_PROP_VAL
public static final java.lang.String S2S_DOMAIN_MAPPING_PROP_VAL
- See Also:
- Constant Field Values
-
S2S_HT_TRAFFIC_THROTTLING_PROP_VAL
public static final java.lang.String S2S_HT_TRAFFIC_THROTTLING_PROP_VAL
- See Also:
- Constant Field Values
-
MAX_PACKET_WAITING_TIME_PROP_VAL
public static final long MAX_PACKET_WAITING_TIME_PROP_VAL
- See Also:
- Constant Field Values
-
CID_CONNECTIONS_TASKS_THREADS_VAL
public static final int CID_CONNECTIONS_TASKS_THREADS_VAL
-
XMLNS_SERVER_VAL
public static final java.lang.String XMLNS_SERVER_VAL
- See Also:
- Constant Field Values
-
DB_RESULT_EL_NAME
protected static final java.lang.String DB_RESULT_EL_NAME
- See Also:
- Constant Field Values
-
DB_VERIFY_EL_NAME
protected static final java.lang.String DB_VERIFY_EL_NAME
- See Also:
- Constant Field Values
-
cidConnections
protected java.util.Map<CID,CIDConnections> cidConnections
Outgoing and incoming connections for a given domains pair (localdomain, remotedomain)
-
-
Method Detail
-
addOutPacket
public boolean addOutPacket(Packet packet)
- Specified by:
addOutPacketin interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
addOutPacketin classAbstractMessageReceiver
-
addTimerTask
public void addTimerTask(TimerTask task, long delay, java.util.concurrent.TimeUnit unit)
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
public int hashCodeForPacket(Packet packet)
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
public void initBindings(javax.script.Bindings binds)
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
public void initNewConnection(java.util.Map<java.lang.String,java.lang.Object> port_props)
- Specified by:
initNewConnectionin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
processPacket
public void processPacket(Packet packet)
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
public java.util.Queue<Packet> processSocketData(S2SIOService serv)
- Specified by:
processSocketDatain classConnectionManager<S2SIOService>
-
processUndeliveredPacket
public boolean processUndeliveredPacket(Packet packet, java.lang.Long stamp, java.lang.String errorMessage)
Description copied from class:ConnectionManagerProcesses undelivered packets- Specified by:
processUndeliveredPacketin classConnectionManager<S2SIOService>stamp- - timestamp when packet was received to be written to XMPPIOService
-
reconnectionFailed
public void reconnectionFailed(java.util.Map<java.lang.String,java.lang.Object> port_props)
- 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(java.lang.String elem_name, CID connCid, CID keyCid, java.lang.Boolean valid, java.lang.String key_sessionId, java.lang.String serv_sessionId, java.lang.String cdata, boolean handshakingOnly)- Specified by:
sendVerifyResultin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
sendVerifyResult
public boolean sendVerifyResult(java.lang.String elem_name, CID connCid, CID keyCid, java.lang.Boolean valid, java.lang.String key_sessionId, java.lang.String serv_sessionId, java.lang.String cdata, boolean handshakingOnly, Element errorElem)- Specified by:
sendVerifyResultin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
serviceConnected
public void serviceConnected(S2SIOService service)
- Specified by:
serviceConnectedin interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
serviceConnectedin classConnectionManager<S2SIOService>
-
serviceStarted
public void serviceStarted(S2SIOService serv)
- Overrides:
serviceStartedin classConnectionManager<S2SIOService>
-
serviceStopped
public boolean serviceStopped(S2SIOService serv)
- Specified by:
serviceStoppedin interfaceIOServiceListener<S2SIOService>- Overrides:
serviceStoppedin classConnectionManager<S2SIOService>
-
tlsHandshakeCompleted
public void tlsHandshakeCompleted(S2SIOService serv)
- Specified by:
tlsHandshakeCompletedin interfaceIOServiceListener<S2SIOService>
-
writeRawData
public void writeRawData(S2SIOService ios, java.lang.String data)
- Specified by:
writeRawDatain interfaceS2SConnectionHandlerIfc<S2SIOService>- Overrides:
writeRawDatain classConnectionManager<S2SIOService>
-
xmppStreamClosed
public void xmppStreamClosed(S2SIOService serv)
- Specified by:
xmppStreamClosedin interfaceXMPPIOServiceListener<S2SIOService>
-
xmppStreamOpened
public java.lang.String[] xmppStreamOpened(S2SIOService serv, java.util.Map<java.lang.String,java.lang.String> attribs)
- Specified by:
xmppStreamOpenedin interfaceXMPPIOServiceListener<S2SIOService>
-
getCIDConnections
public CIDConnections getCIDConnections(CID cid, boolean createNew) throws NotLocalhostException, LocalhostException
- Specified by:
getCIDConnectionsin interfaceS2SConnectionHandlerIfc<S2SIOService>- Throws:
NotLocalhostExceptionLocalhostException
-
getConnectionOpenerService
public CIDConnections.CIDConnectionsOpenerService getConnectionOpenerService()
- Specified by:
getConnectionOpenerServicein interfaceS2SConnectionHandlerIfc<S2SIOService>
-
getDiscoCategoryType
public java.lang.String 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
public java.lang.String getDiscoDescription()
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classBasicComponent- Returns:
- description of a component
-
getSecretForDomain
public java.lang.String getSecretForDomain(java.lang.String domain) throws NotLocalhostExceptionReturns 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
public java.lang.String getServerNameForDomain(java.lang.String domain)
- Specified by:
getServerNameForDomainin interfaceS2SConnectionHandlerIfc<S2SIOService>
-
getStatistics
public void getStatistics(StatisticsList list)
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
public java.util.List<Element> getStreamFeatures(S2SIOService serv)
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
public boolean isTlsRequired(java.lang.String domain)
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
public void setProcessors(java.util.List<S2SProcessor> processors)
-
getDefPlainPorts
protected int[] getDefPlainPorts()
- Overrides:
getDefPlainPortsin classConnectionManager<S2SIOService>
-
getDefTrafficThrottling
protected java.lang.String 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
protected S2SIOService getXMPPIOServiceInstance()
- Specified by:
getXMPPIOServiceInstancein classConnectionManager<S2SIOService>
-
isHighThroughput
protected boolean isHighThroughput()
- Overrides:
isHighThroughputin classConnectionManager<S2SIOService>
-
createNewCIDConnections
protected CIDConnections createNewCIDConnections(CID cid) throws NotLocalhostException, LocalhostException
-
-