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 class
S2SConnectionManager.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 boolean
addOutPacket(Packet packet)
void
addTimerTask(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 CIDConnections
createNewCIDConnections(CID cid)
CIDConnections
getCIDConnections(CID cid, boolean createNew)
CIDConnections.CIDConnectionsOpenerService
getConnectionOpenerService()
protected int[]
getDefPlainPorts()
protected java.lang.String
getDefTrafficThrottling()
Method from ConnectionManager is overriden as it uses local value S2S_HT_TRAFFIC_THROTTLING_PROP_VALjava.lang.String
getDiscoCategoryType()
Method returns component category type used for service discovery responses.java.lang.String
getDiscoDescription()
Method returns description used for service discovery responses.protected long
getMaxInactiveTime()
java.lang.String
getSecretForDomain(java.lang.String domain)
Returns secret used for particular domainjava.lang.String
getServerNameForDomain(java.lang.String domain)
void
getStatistics(StatisticsList list)
Method returns component statistics.java.util.List<Element>
getStreamFeatures(S2SIOService serv)
Returns stream features available for particular S2S connection.protected S2SIOService
getXMPPIOServiceInstance()
boolean
handlesNonLocalDomains()
Indicates whether the component can handle all packets to non-local domains.int
hashCodeForPacket(Packet packet)
This method decides how incoming packets are distributed among processing threads.void
initBindings(javax.script.Bindings binds)
Initialize a mapping of key/value pairs which can be used in scripts loaded by the servervoid
initNewConnection(java.util.Map<java.lang.String,java.lang.Object> port_props)
protected boolean
isHighThroughput()
boolean
isTlsNeedClientAuthEnabled()
boolean
isTlsRequired(java.lang.String domain)
Checks if TLS is required for particular domainboolean
isTlsWantClientAuthEnabled()
void
processPacket(Packet packet)
This is the mainPacket
processing method.java.util.Queue<Packet>
processSocketData(S2SIOService serv)
boolean
processUndeliveredPacket(Packet packet, java.lang.Long stamp, java.lang.String errorMessage)
Processes undelivered packetsvoid
reconnectionFailed(java.util.Map<java.lang.String,java.lang.Object> port_props)
int
schedulerThreads()
Method returns default number of threads used by SchedulerExecutorServiceboolean
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)
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)
void
serviceConnected(S2SIOService service)
void
serviceStarted(S2SIOService serv)
boolean
serviceStopped(S2SIOService serv)
void
setProcessors(java.util.List<S2SProcessor> processors)
void
tlsHandshakeCompleted(S2SIOService serv)
void
writeRawData(S2SIOService ios, java.lang.String data)
void
xmppStreamClosed(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:
addOutPacket
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Overrides:
addOutPacket
in classAbstractMessageReceiver
-
addTimerTask
public void addTimerTask(TimerTask task, long delay, java.util.concurrent.TimeUnit unit)
Description copied from class:AbstractMessageReceiver
Method queues and executes timer tasks using ScheduledExecutorService which allows using more than one thread for executing tasks.- Specified by:
addTimerTask
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Overrides:
addTimerTask
in classAbstractMessageReceiver
-
handlesNonLocalDomains
public boolean handlesNonLocalDomains()
Description copied from interface:VHostListener
Indicates 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:
handlesNonLocalDomains
in interfaceVHostListener
- Overrides:
handlesNonLocalDomains
in classBasicComponent
- Returns:
- 'true' if the component accepts packets to non-local domains 'false' otherwise.
-
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....- Overrides:
hashCodeForPacket
in classConnectionManager<S2SIOService>
- Parameters:
packet
- is aPacket
which 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:BasicComponent
Initialize a mapping of key/value pairs which can be used in scripts loaded by the server- Overrides:
initBindings
in 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:
initNewConnection
in interfaceS2SConnectionHandlerIfc<S2SIOService>
-
processPacket
public void processPacket(Packet packet)
Description copied from class:AbstractMessageReceiver
This is the mainPacket
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, thePacket
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 thePacket
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 usingaddOutPacket(Packet)
method.- Overrides:
processPacket
in classConnectionManager<S2SIOService>
- Parameters:
packet
- is an instance of thePacket
class passed for processing.
-
processSocketData
public java.util.Queue<Packet> processSocketData(S2SIOService serv)
- Specified by:
processSocketData
in classConnectionManager<S2SIOService>
-
processUndeliveredPacket
public boolean processUndeliveredPacket(Packet packet, java.lang.Long stamp, java.lang.String errorMessage)
Description copied from class:ConnectionManager
Processes undelivered packets- Specified by:
processUndeliveredPacket
in 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:
reconnectionFailed
in classConnectionManager<S2SIOService>
-
schedulerThreads
public int schedulerThreads()
Description copied from class:AbstractMessageReceiver
Method returns default number of threads used by SchedulerExecutorService- Overrides:
schedulerThreads
in 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:
sendVerifyResult
in 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:
sendVerifyResult
in interfaceS2SConnectionHandlerIfc<S2SIOService>
-
serviceConnected
public void serviceConnected(S2SIOService service)
- Specified by:
serviceConnected
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Overrides:
serviceConnected
in classConnectionManager<S2SIOService>
-
serviceStarted
public void serviceStarted(S2SIOService serv)
- Overrides:
serviceStarted
in classConnectionManager<S2SIOService>
-
serviceStopped
public boolean serviceStopped(S2SIOService serv)
- Specified by:
serviceStopped
in interfaceIOServiceListener<S2SIOService>
- Overrides:
serviceStopped
in classConnectionManager<S2SIOService>
-
tlsHandshakeCompleted
public void tlsHandshakeCompleted(S2SIOService serv)
- Specified by:
tlsHandshakeCompleted
in interfaceIOServiceListener<S2SIOService>
-
writeRawData
public void writeRawData(S2SIOService ios, java.lang.String data)
- Specified by:
writeRawData
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Overrides:
writeRawData
in classConnectionManager<S2SIOService>
-
xmppStreamClosed
public void xmppStreamClosed(S2SIOService serv)
- Specified by:
xmppStreamClosed
in interfaceXMPPIOServiceListener<S2SIOService>
-
xmppStreamOpened
public java.lang.String[] xmppStreamOpened(S2SIOService serv, java.util.Map<java.lang.String,java.lang.String> attribs)
- Specified by:
xmppStreamOpened
in interfaceXMPPIOServiceListener<S2SIOService>
-
getCIDConnections
public CIDConnections getCIDConnections(CID cid, boolean createNew) throws NotLocalhostException, LocalhostException
- Specified by:
getCIDConnections
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Throws:
NotLocalhostException
LocalhostException
-
getConnectionOpenerService
public CIDConnections.CIDConnectionsOpenerService getConnectionOpenerService()
- Specified by:
getConnectionOpenerService
in interfaceS2SConnectionHandlerIfc<S2SIOService>
-
getDiscoCategoryType
public java.lang.String getDiscoCategoryType()
Description copied from class:BasicComponent
Method returns component category type used for service discovery responses.- Overrides:
getDiscoCategoryType
in classBasicComponent
- Returns:
- category type of a component
-
getDiscoDescription
public java.lang.String getDiscoDescription()
Description copied from class:BasicComponent
Method returns description used for service discovery responses.- Overrides:
getDiscoDescription
in classBasicComponent
- Returns:
- description of a component
-
getSecretForDomain
public java.lang.String getSecretForDomain(java.lang.String domain) throws NotLocalhostException
Returns secret used for particular domain
Secret is used in generation of dialback key- Specified by:
getSecretForDomain
in 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:
getServerNameForDomain
in interfaceS2SConnectionHandlerIfc<S2SIOService>
-
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 haveLevel.FINEST
assigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collectFINEST
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 interfaceStatisticsContainerIfc
- Overrides:
getStatistics
in classConnectionManager<S2SIOService>
- Parameters:
list
- is aStatistcsList
where all statistics are stored.
-
getStreamFeatures
public java.util.List<Element> getStreamFeatures(S2SIOService serv)
Description copied from interface:S2SConnectionHandlerIfc
Returns stream features available for particular S2S connection.- Specified by:
getStreamFeatures
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Parameters:
serv
-S2SIOService
for which stream features should be retrieved- Returns:
- list of stream features
-
isTlsRequired
public boolean isTlsRequired(java.lang.String domain)
Description copied from interface:S2SConnectionHandlerIfc
Checks if TLS is required for particular domain- Specified by:
isTlsRequired
in interfaceS2SConnectionHandlerIfc<S2SIOService>
- Parameters:
domain
- for which secret should be returned- Returns:
- boolean indicating whether TLS is required
-
isTlsWantClientAuthEnabled
public boolean isTlsWantClientAuthEnabled()
- Specified by:
isTlsWantClientAuthEnabled
in interfaceS2SConnectionHandlerIfc<S2SIOService>
-
isTlsNeedClientAuthEnabled
public boolean isTlsNeedClientAuthEnabled()
- Specified by:
isTlsNeedClientAuthEnabled
in interfaceS2SConnectionHandlerIfc<S2SIOService>
-
setProcessors
public void setProcessors(java.util.List<S2SProcessor> processors)
-
getDefPlainPorts
protected int[] getDefPlainPorts()
- Overrides:
getDefPlainPorts
in 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:
getDefTrafficThrottling
in classConnectionManager<S2SIOService>
-
getMaxInactiveTime
protected long getMaxInactiveTime()
- Specified by:
getMaxInactiveTime
in classConnectionManager<S2SIOService>
-
getXMPPIOServiceInstance
protected S2SIOService getXMPPIOServiceInstance()
- Specified by:
getXMPPIOServiceInstance
in classConnectionManager<S2SIOService>
-
isHighThroughput
protected boolean isHighThroughput()
- Overrides:
isHighThroughput
in classConnectionManager<S2SIOService>
-
createNewCIDConnections
protected CIDConnections createNewCIDConnections(CID cid) throws NotLocalhostException, LocalhostException
-
-