tigase.server.xmppclient
Class ClientConnectionManager

java.lang.Object
  extended by tigase.server.BasicComponent
      extended by tigase.server.AbstractMessageReceiver
          extended by tigase.server.ConnectionManager<XMPPIOService<Object>>
              extended by tigase.server.xmppclient.ClientConnectionManager
All Implemented Interfaces:
Configurable, XMPPService, IOServiceListener<XMPPIOService<Object>>, MessageReceiver, ServerComponent, StatisticsContainer, VHostListener, XMPPIOServiceListener<XMPPIOService<Object>>
Direct Known Subclasses:
BoshConnectionManager, ClientConnectionClustered, WebSocketClientConnectionManager

public class ClientConnectionManager
extends ConnectionManager<XMPPIOService<Object>>

Class ClientConnectionManager Created: Tue Nov 22 07:07:11 2005

Version:
$Rev$
Author:
Artur Hefczyc

Nested Class Summary
 
Nested classes/interfaces inherited from class tigase.server.ConnectionManager
ConnectionManager.LIMIT_ACTION
 
Field Summary
protected  RoutingsContainer routings
          Field description
protected  SeeOtherHostIfc see_other_host_strategy
          Field description
 
Fields inherited from class tigase.server.ConnectionManager
connectionDelay, HT_TRAFFIC_THROTTLING_PROP_KEY, HT_TRAFFIC_THROTTLING_PROP_VAL, 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_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_IFC_PROP_VAL, PORT_KEY, PORT_LOCAL_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TLS_PROP_KEY, TLS_REQUIRED_PROP_KEY, TLS_REQUIRED_PROP_VAL, TLS_USE_PROP_KEY, TLS_USE_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, 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, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, SCHEDULER_THREADS_PROP_KEY, SECOND
 
Fields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager
 
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AMP_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_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_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, 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, SRECV_COMP_CLASS_NAME, SSEND_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, 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
ClientConnectionManager()
           
 
Method Summary
protected  tigase.xmpp.JID changeDataReceiver(Packet packet, tigase.xmpp.JID newAddress, String command_sessionId, XMPPIOService<Object> serv)
          Method description
 Map<String,Object> getDefaults(Map<String,Object> params)
          Method description
protected  int[] getDefPlainPorts()
          Method description
protected  int[] getDefSSLPorts()
          Method description
 String getDiscoCategoryType()
          Method description
 String getDiscoDescription()
          Method description
protected  long getMaxInactiveTime()
          Method getMaxInactiveTime returns max keep-alive time for inactive connection.
protected  Integer getMaxQueueSize(int def)
          Method description
 SeeOtherHostIfc getSeeOtherHostInstance(String see_other_host_class)
          Method description
protected  XMPPIOService<Object> getXMPPIOServiceInstance()
          Method description
 int hashCodeForPacket(Packet packet)
          This method can be overwritten in extending classes to get a different packets distribution to different threads.
protected  boolean isTlsWantClientAuthEnabled()
           
protected  ReceiverTimeoutHandler newStartedHandler()
          Method description
protected  ReceiverTimeoutHandler newStoppedHandler()
          Method description
protected  void processCommand(Packet packet)
          Method description
 void processPacket(Packet packet)
          Method description
 Queue<Packet> processSocketData(XMPPIOService<Object> serv)
          Method description
 void reconnectionFailed(Map<String,Object> port_props)
          Method description
 void serviceStarted(XMPPIOService<Object> service)
          Method description
 boolean serviceStopped(XMPPIOService<Object> service)
          Method description
 void setProperties(Map<String,Object> props)
          Method description
 void start()
          Method description
 void stop()
          Method description
 void tlsHandshakeCompleted(XMPPIOService<Object> serv)
          Method description
 void xmppStreamClosed(XMPPIOService<Object> serv)
          Method description
 String xmppStreamOpened(XMPPIOService<Object> serv, Map<String,String> attribs)
          Method description
 
Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, checkHighThroughputProperty, checkTrafficLimits, countIOServices, doForAllServices, everyMinute, getDefTrafficThrottling, getParamsForPort, getServiceId, getServiceId, getStatistics, getUniqueId, getXMPPIOService, getXMPPIOService, initBindings, initializationCompleted, isHighThroughput, packetsReady, processingInThreads, processingOutThreads, release, setName, updateConnectionDetails, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writePacketToSocket, writeRawData
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent
 
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem
 
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.ServerComponent
getComponentId, getName, isInitializationComplete
 

Field Detail

routings

protected RoutingsContainer routings
Field description


see_other_host_strategy

protected SeeOtherHostIfc see_other_host_strategy
Field description

Constructor Detail

ClientConnectionManager

public ClientConnectionManager()
Method Detail

getDefaults

public Map<String,Object> getDefaults(Map<String,Object> params)
Method description

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class ConnectionManager<XMPPIOService<Object>>
Parameters:
params -
Returns:

getDiscoCategoryType

public String getDiscoCategoryType()
Method description

Overrides:
getDiscoCategoryType in class BasicComponent
Returns:

getDiscoDescription

public String getDiscoDescription()
Method description

Overrides:
getDiscoDescription in class BasicComponent
Returns:

getSeeOtherHostInstance

public SeeOtherHostIfc getSeeOtherHostInstance(String see_other_host_class)
Method description

Parameters:
see_other_host_class -
Returns:

hashCodeForPacket

public int hashCodeForPacket(Packet packet)
This method can be overwritten in extending classes to get a different packets distribution to different threads. For PubSub, probably better packets distribution to different threads would be based on the sender address rather then destination address.

Overrides:
hashCodeForPacket in class ConnectionManager<XMPPIOService<Object>>
Parameters:
packet -
Returns:

processPacket

public void processPacket(Packet packet)
Method description

Overrides:
processPacket in class ConnectionManager<XMPPIOService<Object>>
Parameters:
packet -

processSocketData

public Queue<Packet> processSocketData(XMPPIOService<Object> serv)
Method description

Specified by:
processSocketData in class ConnectionManager<XMPPIOService<Object>>
Parameters:
serv -
Returns:

reconnectionFailed

public void reconnectionFailed(Map<String,Object> port_props)
Method description

Specified by:
reconnectionFailed in class ConnectionManager<XMPPIOService<Object>>
Parameters:
port_props -

serviceStopped

public boolean serviceStopped(XMPPIOService<Object> service)
Method description

Specified by:
serviceStopped in interface IOServiceListener<XMPPIOService<Object>>
Overrides:
serviceStopped in class ConnectionManager<XMPPIOService<Object>>
Parameters:
service -
Returns:

serviceStarted

public void serviceStarted(XMPPIOService<Object> service)
Method description

Overrides:
serviceStarted in class ConnectionManager<XMPPIOService<Object>>
Parameters:
service -

setProperties

public void setProperties(Map<String,Object> props)
Method description

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class ConnectionManager<XMPPIOService<Object>>
Parameters:
props -

start

public void start()
Method description

Specified by:
start in interface MessageReceiver
Overrides:
start in class AbstractMessageReceiver

stop

public void stop()
Method description

Overrides:
stop in class ConnectionManager<XMPPIOService<Object>>

tlsHandshakeCompleted

public void tlsHandshakeCompleted(XMPPIOService<Object> serv)
Method description

Parameters:
serv -

xmppStreamClosed

public void xmppStreamClosed(XMPPIOService<Object> serv)
Method description

Parameters:
serv -

xmppStreamOpened

public String xmppStreamOpened(XMPPIOService<Object> serv,
                               Map<String,String> attribs)
Method description

Parameters:
serv -
attribs -
Returns:

changeDataReceiver

protected tigase.xmpp.JID changeDataReceiver(Packet packet,
                                             tigase.xmpp.JID newAddress,
                                             String command_sessionId,
                                             XMPPIOService<Object> serv)
Method description

Parameters:
packet -
newAddress -
command_sessionId -
serv -
Returns:

getDefPlainPorts

protected int[] getDefPlainPorts()
Method description

Overrides:
getDefPlainPorts in class ConnectionManager<XMPPIOService<Object>>
Returns:

getDefSSLPorts

protected int[] getDefSSLPorts()
Method description

Overrides:
getDefSSLPorts in class ConnectionManager<XMPPIOService<Object>>
Returns:

getMaxInactiveTime

protected long getMaxInactiveTime()
Method getMaxInactiveTime returns max keep-alive time for inactive connection. Let's assume user should send something at least once every 24 hours....

Specified by:
getMaxInactiveTime in class ConnectionManager<XMPPIOService<Object>>
Returns:
a long value

getMaxQueueSize

protected Integer getMaxQueueSize(int def)
Method description

Overrides:
getMaxQueueSize in class AbstractMessageReceiver
Parameters:
def -
Returns:

getXMPPIOServiceInstance

protected XMPPIOService<Object> getXMPPIOServiceInstance()
Method description

Specified by:
getXMPPIOServiceInstance in class ConnectionManager<XMPPIOService<Object>>
Returns:

isTlsWantClientAuthEnabled

protected boolean isTlsWantClientAuthEnabled()
Overrides:
isTlsWantClientAuthEnabled in class ConnectionManager<XMPPIOService<Object>>

newStartedHandler

protected ReceiverTimeoutHandler newStartedHandler()
Method description

Returns:

newStoppedHandler

protected ReceiverTimeoutHandler newStoppedHandler()
Method description

Returns:

processCommand

protected void processCommand(Packet packet)
Method description

Parameters:
packet -


Copyright © 2013 Tigase. All rights reserved.