@Bean(name="s2s", parent=Kernel.class, active=true) @ConfigType(value={DefaultMode,ConnectionManagersMode}) public class S2SConnectionManager extends ConnectionManager<S2SIOService> implements S2SConnectionHandlerIfc<S2SIOService>
| Modifier and Type | Class and Description |
|---|---|
static class |
S2SConnectionManager.DomainServerNameMapper |
ConnectionManager.LIMIT_ACTION, ConnectionManager.PortConfigBean, ConnectionManager.PortsConfigBean, ConnectionManager.SecPortConfigBean, ConnectionManager.Watchdog, ConnectionManager.WATCHDOG_PING_TYPEBasicComponent.ServerInfoVHostItemExtensionPacketWriterWithTimeout.HandlerconnectionDelay, 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_PROP_KEY, NET_BUFFER_LIMIT_ST_PROP_VAL, NET_BUFFER_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, pingElement, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_IFC_PROP_VAL, PORT_KEY, PORT_LISTENING_DELAY_DEF, PORT_LISTENING_DELAY_KEY, PORT_LOCAL_HOST_PROP_KEY, PORT_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_VALHOUR, 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, SECONDadmins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManagerADMINS_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_ACKCMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS| Constructor and Description |
|---|
S2SConnectionManager() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addOutPacket(Packet packet) |
void |
addTimerTask(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 CIDConnections |
createNewCIDConnections(CID cid) |
CIDConnections |
getCIDConnections(CID cid,
boolean createNew) |
CIDConnections.CIDConnectionsOpenerService |
getConnectionOpenerService() |
protected int[] |
getDefPlainPorts() |
protected String |
getDefTrafficThrottling()
Method from ConnectionManager is overriden as it uses local value S2S_HT_TRAFFIC_THROTTLING_PROP_VAL
|
String |
getDiscoCategoryType()
Method returns component category type used for service discovery responses.
|
String |
getDiscoDescription()
Method returns description used for service discovery responses.
|
protected long |
getMaxInactiveTime() |
String |
getSecretForDomain(String domain)
Returns secret used for particular domain
|
String |
getServerNameForDomain(String domain) |
void |
getStatistics(StatisticsList list)
Method returns component statistics.
|
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(Bindings binds)
Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
|
void |
initNewConnection(Map<String,Object> port_props) |
protected boolean |
isHighThroughput() |
boolean |
isTlsNeedClientAuthEnabled() |
boolean |
isTlsRequired(String domain)
Checks if TLS is required for particular domain
|
boolean |
isTlsWantClientAuthEnabled() |
void |
processPacket(Packet packet)
This is the main
Packet processing method. |
Queue<Packet> |
processSocketData(S2SIOService serv) |
boolean |
processUndeliveredPacket(Packet packet,
Long stamp,
String errorMessage)
Processes undelivered packets
|
void |
reconnectionFailed(Map<String,Object> port_props) |
int |
schedulerThreads()
Method returns default number of threads used by SchedulerExecutorService
|
boolean |
sendVerifyResult(String elem_name,
CID connCid,
CID keyCid,
Boolean valid,
String key_sessionId,
String serv_sessionId,
String cdata,
boolean handshakingOnly) |
boolean |
sendVerifyResult(String elem_name,
CID connCid,
CID keyCid,
Boolean valid,
String key_sessionId,
String serv_sessionId,
String cdata,
boolean handshakingOnly,
Element errorElem) |
void |
serviceConnected(S2SIOService service) |
void |
serviceStarted(S2SIOService serv) |
boolean |
serviceStopped(S2SIOService serv) |
void |
setProcessors(List<S2SProcessor> processors) |
void |
tlsHandshakeCompleted(S2SIOService serv) |
void |
writeRawData(S2SIOService ios,
String data) |
void |
xmppStreamClosed(S2SIOService serv) |
String[] |
xmppStreamOpened(S2SIOService serv,
Map<String,String> attribs) |
addWaitingTask, beanConfigurationChanged, checkHighThroughputProperty, checkTrafficLimits, connectWaitingTasks, countIOServices, doForAllServices, enableServiceConnectedTimeout, everyMinute, getDefPorts, getDefSSLPorts, getFlashCrossDomainPolicy, getNet_buffer_limit, getParamsForPort, 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, xmppStreamErroraddOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, everyHour, everySecond, getMaxQueueSize, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, removeRegexRouting, setCompId, setIncomingFilters, setOutogingFilters, setParent, setSchedulerThreads_sizeaddComponentDomain, 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, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntityclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDefHostName, writePacketsToSocket, writePacketToSocketgetNamegetDefHostNamegetComponentId, getComponentInfo, getName, isInitializationCompletepublic static final String CID_CONNECTIONS_BIND
public static final String CID_CONNECTIONS_TASKS_THREADS_KEY
public static final String MAX_CONNECTION_INACTIVITY_TIME_PROP_KEY
public static final String MAX_INCOMING_CONNECTIONS_PROP_KEY
public static final int MAX_INCOMING_CONNECTIONS_PROP_VAL
public static final String MAX_OUT_PER_IP_CONNECTIONS_PROP_KEY
public static final int MAX_OUT_PER_IP_CONNECTIONS_PROP_VAL
public static final String MAX_OUT_TOTAL_CONNECTIONS_PROP_KEY
public static final int MAX_OUT_TOTAL_CONNECTIONS_PROP_VAL
public static final String MAX_PACKET_WAITING_TIME_PROP_KEY
public static final String S2S_CONNECTION_SELECTOR_PROP_KEY
public static final String S2S_CONNECTION_SELECTOR_PROP_VAL
public static final String S2S_DOMAIN_MAPPING_PROP_KEY
public static final String S2S_DOMAIN_MAPPING_PROP_VAL
public static final String S2S_HT_TRAFFIC_THROTTLING_PROP_VAL
public static final long MAX_PACKET_WAITING_TIME_PROP_VAL
public static final int CID_CONNECTIONS_TASKS_THREADS_VAL
public static final String XMLNS_SERVER_VAL
protected static final String DB_RESULT_EL_NAME
protected static final String DB_VERIFY_EL_NAME
protected Map<CID,CIDConnections> cidConnections
public boolean addOutPacket(Packet packet)
addOutPacket in interface S2SConnectionHandlerIfc<S2SIOService>addOutPacket in class AbstractMessageReceiverpublic void addTimerTask(TimerTask task, long delay, TimeUnit unit)
AbstractMessageReceiveraddTimerTask in interface S2SConnectionHandlerIfc<S2SIOService>addTimerTask in class AbstractMessageReceiverpublic boolean handlesNonLocalDomains()
VHostListenerhandlesNonLocalDomains in interface VHostListenerhandlesNonLocalDomains in class BasicComponentpublic int hashCodeForPacket(Packet packet)
AbstractMessageReceiverint threadNo = Math.abs(hashCodeForPacket(packet) % N);
hashCodeForPacket in class ConnectionManager<S2SIOService>packet - is a Packet which needs to be processed by some thread.public void initBindings(Bindings binds)
BasicComponentinitBindings in class ConnectionManager<S2SIOService>binds - A mapping of key/value pairs, all of whose keys are Strings.public void initNewConnection(Map<String,Object> port_props)
initNewConnection in interface S2SConnectionHandlerIfc<S2SIOService>public void processPacket(Packet packet)
AbstractMessageReceiverPacket 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. 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. addOutPacket(Packet) method.processPacket in class ConnectionManager<S2SIOService>packet - is an instance of the Packet class passed for processing.public Queue<Packet> processSocketData(S2SIOService serv)
processSocketData in class ConnectionManager<S2SIOService>public boolean processUndeliveredPacket(Packet packet, Long stamp, String errorMessage)
ConnectionManagerprocessUndeliveredPacket in class ConnectionManager<S2SIOService>stamp - - timestamp when packet was received to be written to XMPPIOServicepublic void reconnectionFailed(Map<String,Object> port_props)
reconnectionFailed in class ConnectionManager<S2SIOService>public int schedulerThreads()
AbstractMessageReceiverschedulerThreads in class AbstractMessageReceiverintpublic boolean sendVerifyResult(String elem_name, CID connCid, CID keyCid, Boolean valid, String key_sessionId, String serv_sessionId, String cdata, boolean handshakingOnly)
sendVerifyResult in interface S2SConnectionHandlerIfc<S2SIOService>public boolean sendVerifyResult(String elem_name, CID connCid, CID keyCid, Boolean valid, String key_sessionId, String serv_sessionId, String cdata, boolean handshakingOnly, Element errorElem)
sendVerifyResult in interface S2SConnectionHandlerIfc<S2SIOService>public void serviceConnected(S2SIOService service)
serviceConnected in interface S2SConnectionHandlerIfc<S2SIOService>serviceConnected in class ConnectionManager<S2SIOService>public void serviceStarted(S2SIOService serv)
serviceStarted in class ConnectionManager<S2SIOService>public boolean serviceStopped(S2SIOService serv)
serviceStopped in interface IOServiceListener<S2SIOService>serviceStopped in class ConnectionManager<S2SIOService>public void tlsHandshakeCompleted(S2SIOService serv)
tlsHandshakeCompleted in interface IOServiceListener<S2SIOService>public void writeRawData(S2SIOService ios, String data)
writeRawData in interface S2SConnectionHandlerIfc<S2SIOService>writeRawData in class ConnectionManager<S2SIOService>public void xmppStreamClosed(S2SIOService serv)
xmppStreamClosed in interface XMPPIOServiceListener<S2SIOService>public String[] xmppStreamOpened(S2SIOService serv, Map<String,String> attribs)
xmppStreamOpened in interface XMPPIOServiceListener<S2SIOService>public CIDConnections getCIDConnections(CID cid, boolean createNew) throws NotLocalhostException, LocalhostException
getCIDConnections in interface S2SConnectionHandlerIfc<S2SIOService>NotLocalhostExceptionLocalhostExceptionpublic CIDConnections.CIDConnectionsOpenerService getConnectionOpenerService()
getConnectionOpenerService in interface S2SConnectionHandlerIfc<S2SIOService>public String getDiscoCategoryType()
BasicComponentgetDiscoCategoryType in class BasicComponentpublic String getDiscoDescription()
BasicComponentgetDiscoDescription in class BasicComponentpublic String getSecretForDomain(String domain) throws NotLocalhostException
getSecretForDomain in interface S2SConnectionHandlerIfc<S2SIOService>domain - for which secret should be returnedNotLocalhostException - if the domain is not localpublic String getServerNameForDomain(String domain)
getServerNameForDomain in interface S2SConnectionHandlerIfc<S2SIOService>public void getStatistics(StatisticsList list)
AbstractMessageReceiverLevel.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.
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.getStatistics in interface StatisticsContainerIfcgetStatistics in class ConnectionManager<S2SIOService>list - is a StatistcsList where all statistics are stored.public List<Element> getStreamFeatures(S2SIOService serv)
S2SConnectionHandlerIfcgetStreamFeatures in interface S2SConnectionHandlerIfc<S2SIOService>serv - S2SIOService for which stream features should be retrievedpublic boolean isTlsRequired(String domain)
S2SConnectionHandlerIfcisTlsRequired in interface S2SConnectionHandlerIfc<S2SIOService>domain - for which secret should be returnedpublic boolean isTlsWantClientAuthEnabled()
isTlsWantClientAuthEnabled in interface S2SConnectionHandlerIfc<S2SIOService>public boolean isTlsNeedClientAuthEnabled()
isTlsNeedClientAuthEnabled in interface S2SConnectionHandlerIfc<S2SIOService>public void setProcessors(List<S2SProcessor> processors)
protected int[] getDefPlainPorts()
getDefPlainPorts in class ConnectionManager<S2SIOService>protected String getDefTrafficThrottling()
getDefTrafficThrottling in class ConnectionManager<S2SIOService>protected long getMaxInactiveTime()
getMaxInactiveTime in class ConnectionManager<S2SIOService>protected S2SIOService getXMPPIOServiceInstance()
getXMPPIOServiceInstance in class ConnectionManager<S2SIOService>protected boolean isHighThroughput()
isHighThroughput in class ConnectionManager<S2SIOService>protected CIDConnections createNewCIDConnections(CID cid) throws NotLocalhostException, LocalhostException
Copyright © 2004–2021 "Tigase, Inc.". All rights reserved.