tigase.server
Class ConnectionManager<IO extends XMPPIOService<?>>

java.lang.Object
  extended by tigase.server.BasicComponent
      extended by tigase.server.AbstractMessageReceiver
          extended by tigase.server.ConnectionManager<IO>
Type Parameters:
IO -
All Implemented Interfaces:
Configurable, XMPPService, IOServiceListener<IO>, MessageReceiver, ServerComponent, StatisticsContainer, VHostListener, XMPPIOServiceListener<IO>
Direct Known Subclasses:
ClientConnectionManager, ClusterConnectionManager, ComponentConnectionManager, ComponentProtocol, S2SConnectionManager, ServerConnectionManager

public abstract class ConnectionManager<IO extends XMPPIOService<?>>
extends AbstractMessageReceiver
implements XMPPIOServiceListener<IO>

Describe class ConnectionManager here. Created: Sun Jan 22 22:52:58 2006

Version:
$Rev: 2996 $
Author:
Artur Hefczyc

Field Summary
protected  long connectionDelay
           
protected static String MAX_RECONNECTS_PROP_KEY
           
protected  int net_buffer
           
static String NET_BUFFER_HT_PROP_KEY
          Field description
protected static int NET_BUFFER_HT_PROP_VAL
           
protected static String NET_BUFFER_PROP_KEY
           
static String NET_BUFFER_ST_PROP_KEY
          Field description
protected static int NET_BUFFER_ST_PROP_VAL
           
protected static String PORT_CLASS_PROP_KEY
           
protected static String PORT_IFC_PROP_KEY
           
 String[] PORT_IFC_PROP_VAL
          Field description
protected static String PORT_KEY
           
static String PORT_LOCAL_HOST_PROP_KEY
          Field description
protected static String PORT_REMOTE_HOST_PROP_KEY
           
protected static String PORT_REMOTE_HOST_PROP_VAL
           
protected static String PORT_SOCKET_PROP_KEY
           
protected static String PORT_TYPE_PROP_KEY
           
protected static String PORTS_PROP_KEY
           
protected static String PROP_KEY
           
protected static String TLS_PROP_KEY
           
protected static String TLS_REQUIRED_PROP_KEY
           
protected static boolean TLS_REQUIRED_PROP_VAL
           
protected static String TLS_USE_PROP_KEY
           
protected static boolean TLS_USE_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, 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, 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, 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
ConnectionManager()
           
 
Method Summary
protected  void addWaitingTask(Map<String,Object> conn)
           
protected  int countIOServices()
          Returns number of active network connections (IOServices).
protected  void doForAllServices(ServiceChecker<IO> checker)
          Perform a given action defined by ServiceChecker for all active IOService objects (active network connections).
 void everyMinute()
          Method description
 Map<String,Object> getDefaults(Map<String,Object> params)
          Method description
protected  int[] getDefPlainPorts()
           
protected  int[] getDefSSLPorts()
           
protected abstract  long getMaxInactiveTime()
           
protected  Map<String,Object> getParamsForPort(int port)
           
protected  String getServiceId(tigase.xmpp.JID jid)
           
protected  String getServiceId(Packet packet)
           
 void getStatistics(StatisticsList list)
          Generates the component statistics.
protected  String getUniqueId(IO serv)
           
protected  IO getXMPPIOService(Packet p)
           
protected  IO getXMPPIOService(String serviceId)
           
protected abstract  IO getXMPPIOServiceInstance()
           
 int hashCodeForPacket(Packet packet)
          This method can be overwritten in extending classes to get a different packets distribution to different threads.
 void initBindings(Bindings binds)
          Method description
 void initializationCompleted()
          Method description
protected  boolean isHighThroughput()
           
 void packetsReady(IO serv)
          Method description
 int processingInThreads()
          Method description
 int processingOutThreads()
           
 void processPacket(Packet packet)
          Method description
abstract  Queue<Packet> processSocketData(IO serv)
          Method description
abstract  void reconnectionFailed(Map<String,Object> port_props)
          Method description
 void release()
          Method description
 void serviceStarted(IO service)
          Method description
 boolean serviceStopped(IO service)
           
 void setName(String name)
          Method description
 void setProperties(Map<String,Object> props)
          Method description
 void writePacketsToSocket(IO serv, Queue<Packet> packets)
          Method description
 boolean writePacketToSocket(IO ios, Packet p)
          Method description
protected  boolean writePacketToSocket(Packet p)
           
protected  boolean writePacketToSocket(Packet p, String serviceId)
           
protected  void writeRawData(IO ios, String data)
           
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everySecond, getMaxQueueSize, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, removeRegexRouting, setMaxQueueSize, setParent, start, stop
 
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getDefHostName, getDiscoCategory, getDiscoCategoryType, getDiscoDescription, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getScriptItems, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isLocalDomain, isLocalDomainOrComponent, 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.xmpp.XMPPIOServiceListener
xmppStreamClosed, xmppStreamOpened
 
Methods inherited from interface tigase.net.IOServiceListener
tlsHandshakeCompleted
 
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
 
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getName
 

Field Detail

NET_BUFFER_ST_PROP_KEY

public static final String NET_BUFFER_ST_PROP_KEY
Field description

See Also:
Constant Field Values

NET_BUFFER_HT_PROP_KEY

public static final String NET_BUFFER_HT_PROP_KEY
Field description

See Also:
Constant Field Values

PORT_KEY

protected static final String PORT_KEY
See Also:
Constant Field Values

PROP_KEY

protected static final String PROP_KEY
See Also:
Constant Field Values

PORTS_PROP_KEY

protected static final String PORTS_PROP_KEY
See Also:
Constant Field Values

PORT_TYPE_PROP_KEY

protected static final String PORT_TYPE_PROP_KEY
See Also:
Constant Field Values

PORT_SOCKET_PROP_KEY

protected static final String PORT_SOCKET_PROP_KEY
See Also:
Constant Field Values

PORT_IFC_PROP_KEY

protected static final String PORT_IFC_PROP_KEY
See Also:
Constant Field Values

PORT_CLASS_PROP_KEY

protected static final String PORT_CLASS_PROP_KEY
See Also:
Constant Field Values

PORT_REMOTE_HOST_PROP_KEY

protected static final String PORT_REMOTE_HOST_PROP_KEY
See Also:
Constant Field Values

PORT_REMOTE_HOST_PROP_VAL

protected static final String PORT_REMOTE_HOST_PROP_VAL
See Also:
Constant Field Values

TLS_PROP_KEY

protected static final String TLS_PROP_KEY
See Also:
Constant Field Values

TLS_USE_PROP_KEY

protected static final String TLS_USE_PROP_KEY
See Also:
Constant Field Values

TLS_USE_PROP_VAL

protected static final boolean TLS_USE_PROP_VAL
See Also:
Constant Field Values

TLS_REQUIRED_PROP_KEY

protected static final String TLS_REQUIRED_PROP_KEY
See Also:
Constant Field Values

TLS_REQUIRED_PROP_VAL

protected static final boolean TLS_REQUIRED_PROP_VAL
See Also:
Constant Field Values

MAX_RECONNECTS_PROP_KEY

protected static final String MAX_RECONNECTS_PROP_KEY
See Also:
Constant Field Values

NET_BUFFER_PROP_KEY

protected static final String NET_BUFFER_PROP_KEY
See Also:
Constant Field Values

NET_BUFFER_ST_PROP_VAL

protected static final int NET_BUFFER_ST_PROP_VAL
See Also:
Constant Field Values

NET_BUFFER_HT_PROP_VAL

protected static final int NET_BUFFER_HT_PROP_VAL
See Also:
Constant Field Values

PORT_LOCAL_HOST_PROP_KEY

public static final String PORT_LOCAL_HOST_PROP_KEY
Field description

See Also:
Constant Field Values

PORT_IFC_PROP_VAL

public String[] PORT_IFC_PROP_VAL
Field description


net_buffer

protected int net_buffer

connectionDelay

protected long connectionDelay
Constructor Detail

ConnectionManager

public ConnectionManager()
Method Detail

processSocketData

public abstract Queue<Packet> processSocketData(IO serv)
Method description

Parameters:
serv -
Returns:

reconnectionFailed

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

Parameters:
port_props -

getMaxInactiveTime

protected abstract long getMaxInactiveTime()

getXMPPIOServiceInstance

protected abstract IO getXMPPIOServiceInstance()

everyMinute

public void everyMinute()
Method description

Overrides:
everyMinute in class AbstractMessageReceiver

getDefaults

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

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class AbstractMessageReceiver
Parameters:
params -
Returns:

getStatistics

public void getStatistics(StatisticsList list)
Generates the component statistics.

Specified by:
getStatistics in interface StatisticsContainer
Overrides:
getStatistics in class AbstractMessageReceiver
Parameters:
list - is a collection to put the component statistics in.

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:

initBindings

public void initBindings(Bindings binds)
Method description

Overrides:
initBindings in class BasicComponent
Parameters:
binds -

initializationCompleted

public void initializationCompleted()
Method description

Specified by:
initializationCompleted in interface ServerComponent
Overrides:
initializationCompleted in class BasicComponent

packetsReady

public void packetsReady(IO serv)
                  throws IOException
Method description

Specified by:
packetsReady in interface IOServiceListener<IO extends XMPPIOService<?>>
Parameters:
serv -
Throws:
IOException

processPacket

public void processPacket(Packet packet)
Method description

Specified by:
processPacket in class AbstractMessageReceiver
Parameters:
packet -

processingInThreads

public int processingInThreads()
Method description

Overrides:
processingInThreads in class AbstractMessageReceiver
Returns:

processingOutThreads

public int processingOutThreads()
Overrides:
processingOutThreads in class AbstractMessageReceiver

release

public void release()
Method description

Specified by:
release in interface ServerComponent
Overrides:
release in class AbstractMessageReceiver

serviceStarted

@TODO(note="Do something if service with the same unique ID is already started, possibly kill the old one...")
public void serviceStarted(IO service)
Method description

Parameters:
service -

serviceStopped

public boolean serviceStopped(IO service)
Specified by:
serviceStopped in interface IOServiceListener<IO extends XMPPIOService<?>>
Parameters:
service -
Returns:

setName

public void setName(String name)
Method description

Specified by:
setName in interface ServerComponent
Overrides:
setName in class AbstractMessageReceiver
Parameters:
name -

setProperties

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

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class AbstractMessageReceiver
Parameters:
props -

writePacketToSocket

public boolean writePacketToSocket(IO ios,
                                   Packet p)
Method description

Parameters:
ios -
p -
Returns:

writePacketsToSocket

public void writePacketsToSocket(IO serv,
                                 Queue<Packet> packets)
Method description

Parameters:
serv -
packets -

addWaitingTask

protected void addWaitingTask(Map<String,Object> conn)

countIOServices

protected int countIOServices()
Returns number of active network connections (IOServices).

Returns:
number of active network connections (IOServices).

doForAllServices

protected void doForAllServices(ServiceChecker<IO> checker)
Perform a given action defined by ServiceChecker for all active IOService objects (active network connections).

Parameters:
checker - is a ServiceChecker instance defining an action to perform for all IOService objects.

getDefPlainPorts

protected int[] getDefPlainPorts()

getDefSSLPorts

protected int[] getDefSSLPorts()

getParamsForPort

protected Map<String,Object> getParamsForPort(int port)

getServiceId

protected String getServiceId(Packet packet)

getServiceId

protected String getServiceId(tigase.xmpp.JID jid)

getUniqueId

protected String getUniqueId(IO serv)

getXMPPIOService

protected IO getXMPPIOService(String serviceId)

getXMPPIOService

protected IO getXMPPIOService(Packet p)

isHighThroughput

protected boolean isHighThroughput()

writePacketToSocket

protected boolean writePacketToSocket(Packet p)
Parameters:
p -
Returns:

writePacketToSocket

protected boolean writePacketToSocket(Packet p,
                                      String serviceId)

writeRawData

protected void writeRawData(IO ios,
                            String data)


Copyright © 2012 Tigase. All Rights Reserved.