tigase.server.xmppclient
Class ClientConnectionManager

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

public class ClientConnectionManager
extends ConnectionManager<XMPPIOService>

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

Version:
$Rev: 1839 $
Author:
Artur Hefczyc

Field Summary
protected  RoutingsContainer routings
           
 
Fields inherited from class tigase.server.ConnectionManager
connectionDelay, 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_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, PROP_KEY, TLS_ALLOW_INVALID_CERTS_PROP_KEY, TLS_ALLOW_INVALID_CERTS_PROP_VAL, TLS_ALLOW_SELF_SIGNED_CERTS_PROP_KEY, TLS_ALLOW_SELF_SIGNED_CERTS_PROP_VAL, TLS_CONTAINER_CLASS_PROP_KEY, TLS_CONTAINER_CLASS_PROP_VAL, TLS_DEF_CERT_PROP_KEY, TLS_DEF_CERT_PROP_VAL, TLS_KEYS_STORE_PASSWD_PROP_KEY, TLS_KEYS_STORE_PASSWD_PROP_VAL, TLS_KEYS_STORE_PROP_KEY, TLS_KEYS_STORE_PROP_VAL, TLS_PROP_KEY, TLS_REQUIRED_PROP_KEY, TLS_REQUIRED_PROP_VAL, TLS_SERVER_CERTS_DIR_PROP_KEY, TLS_SERVER_CERTS_DIR_PROP_VAL, TLS_TRUSTED_CERTS_DIR_PROP_KEY, TLS_TRUSTED_CERTS_DIR_PROP_VAL, TLS_TRUSTS_STORE_PASSWD_PROP_KEY, TLS_TRUSTS_STORE_PASSWD_PROP_VAL, TLS_TRUSTS_STORE_PROP_KEY, TLS_TRUSTS_STORE_PROP_VAL, TLS_USE_PROP_KEY, TLS_USE_PROP_VAL
 
Fields inherited from class tigase.server.AbstractMessageReceiver
HOUR, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxQueueSize, MINUTE, SECOND, vHostManager
 
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AUTH_REPO_CLASS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_URL_PROP_KEY, 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, COMPONENT_ID_PROP_KEY, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_CLASS_PROP_VAL, DRUPAL_REPO_URL_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_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, NULL_ROUTING, 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_POOL_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUS_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, SRECV_COMP_CLASS_NAME, SSEND_COMP_CLASS_NAME, STATS_CLASS_NAME, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_REPO_CLASS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL
 
Constructor Summary
ClientConnectionManager()
           
 
Method Summary
protected  java.lang.String changeDataReceiver(Packet packet, java.lang.String newAddress, java.lang.String command_sessionId, XMPPIOService serv)
           
 java.util.Map<java.lang.String,java.lang.Object> getDefaults(java.util.Map<java.lang.String,java.lang.Object> params)
          Returns defualt configuration settings for this object.
protected  int[] getDefPlainPorts()
           
protected  int[] getDefSSLPorts()
           
protected  long getMaxInactiveTime()
          Method getMaxInactiveTime returns max keep-alive time for inactive connection.
protected  java.lang.Integer getMaxQueueSize(int def)
           
protected  XMPPIOService getXMPPIOServiceInstance()
           
 int hashCodeForPacket(Packet packet)
          This method can be overwritten in extending classes to get a different packets distribution to different threads.
protected  ReceiverEventHandler newStartedHandler()
           
protected  ReceiverEventHandler newStoppedHandler()
           
protected  void processCommand(Packet packet)
           
 int processingThreads()
           
 void processPacket(Packet packet)
           
 java.util.Queue<Packet> processSocketData(XMPPIOService serv)
           
 boolean serviceStopped(XMPPIOService service)
           
 void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
          Sets all configuration properties for object.
 void start()
           
 void stop()
           
 void xmppStreamClosed(XMPPIOService serv)
           
 java.lang.String xmppStreamOpened(XMPPIOService serv, java.util.Map<java.lang.String,java.lang.String> attribs)
          Method is called on the new XMPP Stream open event.
 
Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, countIOServices, doForAllServices, getParamsForPort, getServiceId, getServiceId, getStatistics, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, isHighThroughput, packetsReady, packetsReady, release, serviceStarted, serviceStopped, setName, streamClosed, streamOpened, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writePacketToSocket, writeRawData
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, clearRegexRoutings, everyHour, everyMinute, everySecond, getComponentId, getDefHostName, getName, getRegexRoutings, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isInRegexRoutings, isLocalDomain, isLocalDomainOrComponent, newPacketId, processPacket, removeRegexRouting, setMaxQueueSize, setParent, setVHostManager
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

routings

protected RoutingsContainer routings
Constructor Detail

ClientConnectionManager

public ClientConnectionManager()
Method Detail

processPacket

public void processPacket(Packet packet)
Overrides:
processPacket in class ConnectionManager<XMPPIOService>

processCommand

protected void processCommand(Packet packet)

changeDataReceiver

protected java.lang.String changeDataReceiver(Packet packet,
                                              java.lang.String newAddress,
                                              java.lang.String command_sessionId,
                                              XMPPIOService serv)

processSocketData

public java.util.Queue<Packet> processSocketData(XMPPIOService serv)
Specified by:
processSocketData in class ConnectionManager<XMPPIOService>

getDefaults

public java.util.Map<java.lang.String,java.lang.Object> getDefaults(java.util.Map<java.lang.String,java.lang.Object> params)
Description copied from class: AbstractMessageReceiver
Returns defualt configuration settings for this object.

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class ConnectionManager<XMPPIOService>
Returns:

setProperties

public void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
Description copied from class: AbstractMessageReceiver
Sets all configuration properties for object.

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class ConnectionManager<XMPPIOService>

getDefPlainPorts

protected int[] getDefPlainPorts()
Overrides:
getDefPlainPorts in class ConnectionManager<XMPPIOService>

getDefSSLPorts

protected int[] getDefSSLPorts()
Overrides:
getDefSSLPorts in class ConnectionManager<XMPPIOService>

xmppStreamOpened

public java.lang.String xmppStreamOpened(XMPPIOService serv,
                                         java.util.Map<java.lang.String,java.lang.String> attribs)
Description copied from class: ConnectionManager
Method is called on the new XMPP Stream open event. This method is normally called from streamOpen(...) method.

Specified by:
xmppStreamOpened in class ConnectionManager<XMPPIOService>
Parameters:
serv - is an IOService object associated with the network connection where the XMPP Stream open event occured.
attribs - is a Map with all attributes found in the XMPP Stream open element.
Returns:
A String of raw data which should be sent back to the network connection.

serviceStopped

public boolean serviceStopped(XMPPIOService service)
Overrides:
serviceStopped in class ConnectionManager<XMPPIOService>
Returns:

xmppStreamClosed

public void xmppStreamClosed(XMPPIOService serv)
Specified by:
xmppStreamClosed in class ConnectionManager<XMPPIOService>

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>
Returns:
a long value

start

public void start()
Specified by:
start in interface MessageReceiver
Overrides:
start in class ConnectionManager<XMPPIOService>

stop

public void stop()
Overrides:
stop in class AbstractMessageReceiver

getXMPPIOServiceInstance

protected XMPPIOService getXMPPIOServiceInstance()
Specified by:
getXMPPIOServiceInstance in class ConnectionManager<XMPPIOService>

newStoppedHandler

protected ReceiverEventHandler newStoppedHandler()

newStartedHandler

protected ReceiverEventHandler newStartedHandler()

getMaxQueueSize

protected java.lang.Integer getMaxQueueSize(int def)
Overrides:
getMaxQueueSize in class AbstractMessageReceiver

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 AbstractMessageReceiver
Parameters:
packet -
Returns:

processingThreads

public int processingThreads()
Overrides:
processingThreads in class AbstractMessageReceiver


Copyright © 2009 Tigase. All Rights Reserved.