tigase.server
Class ConnectionManager<IO extends XMPPIOService>

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

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

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

Version:
$Rev: 1704 $
Author:
Artur Hefczyc

Field Summary
protected  long connectionDelay
           
protected static java.lang.String MAX_RECONNECTS_PROP_KEY
           
protected  int net_buffer
           
static java.lang.String NET_BUFFER_HT_PROP_KEY
           
protected static int NET_BUFFER_HT_PROP_VAL
           
protected static java.lang.String NET_BUFFER_PROP_KEY
           
static java.lang.String NET_BUFFER_ST_PROP_KEY
           
protected static int NET_BUFFER_ST_PROP_VAL
           
protected static java.lang.String PORT_CLASS_PROP_KEY
           
protected static java.lang.String PORT_IFC_PROP_KEY
           
protected static java.lang.String PORT_KEY
           
protected static java.lang.String PORT_REMOTE_HOST_PROP_KEY
           
protected static java.lang.String PORT_REMOTE_HOST_PROP_VAL
           
protected static java.lang.String PORT_SOCKET_PROP_KEY
           
protected static java.lang.String PORT_TYPE_PROP_KEY
           
protected static java.lang.String PORTS_PROP_KEY
           
protected static java.lang.String PROP_KEY
           
protected static java.lang.String TLS_ALLOW_INVALID_CERTS_PROP_KEY
           
protected static java.lang.String TLS_ALLOW_INVALID_CERTS_PROP_VAL
           
protected static java.lang.String TLS_ALLOW_SELF_SIGNED_CERTS_PROP_KEY
           
protected static java.lang.String TLS_ALLOW_SELF_SIGNED_CERTS_PROP_VAL
           
protected static java.lang.String TLS_CONTAINER_CLASS_PROP_KEY
           
protected static java.lang.String TLS_CONTAINER_CLASS_PROP_VAL
           
protected static java.lang.String TLS_DEF_CERT_PROP_KEY
           
protected static java.lang.String TLS_DEF_CERT_PROP_VAL
           
protected static java.lang.String TLS_KEYS_STORE_PASSWD_PROP_KEY
           
protected static java.lang.String TLS_KEYS_STORE_PASSWD_PROP_VAL
           
protected static java.lang.String TLS_KEYS_STORE_PROP_KEY
           
protected static java.lang.String TLS_KEYS_STORE_PROP_VAL
           
protected static java.lang.String TLS_PROP_KEY
           
protected static java.lang.String TLS_REQUIRED_PROP_KEY
           
protected static boolean TLS_REQUIRED_PROP_VAL
           
protected static java.lang.String TLS_SERVER_CERTS_DIR_PROP_KEY
           
protected static java.lang.String TLS_SERVER_CERTS_DIR_PROP_VAL
           
protected static java.lang.String TLS_TRUSTED_CERTS_DIR_PROP_KEY
           
protected static java.lang.String TLS_TRUSTED_CERTS_DIR_PROP_VAL
           
protected static java.lang.String TLS_TRUSTS_STORE_PASSWD_PROP_KEY
           
protected static java.lang.String TLS_TRUSTS_STORE_PASSWD_PROP_VAL
           
protected static java.lang.String TLS_TRUSTS_STORE_PROP_KEY
           
protected static java.lang.String TLS_TRUSTS_STORE_PROP_VAL
           
protected static java.lang.String TLS_USE_PROP_KEY
           
protected static boolean 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
ConnectionManager()
           
 
Method Summary
protected  void addWaitingTask(java.util.Map<java.lang.String,java.lang.Object> conn)
           
protected  int countIOServices()
           
protected  void doForAllServices(ServiceChecker checker)
           
 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 abstract  long getMaxInactiveTime()
           
protected  java.util.Map<java.lang.String,java.lang.Object> getParamsForPort(int port)
           
protected  java.lang.String getServiceId(Packet packet)
           
protected  java.lang.String getServiceId(java.lang.String jid)
           
 java.util.List<StatRecord> getStatistics()
           
protected  java.lang.String getUniqueId(IO serv)
           
protected  IO getXMPPIOService(Packet p)
           
protected  IO getXMPPIOService(java.lang.String serviceId)
           
protected abstract  IO getXMPPIOServiceInstance()
           
 void initializationCompleted()
           
protected  boolean isHighThroughput()
           
 void packetsReady(IO serv)
           
 void packetsReady(IOService s)
          Describe packetsReady method here.
 void processPacket(Packet packet)
           
abstract  java.util.Queue<Packet> processSocketData(IO serv)
           
 void release()
           
 void serviceStarted(IO service)
           
 boolean serviceStopped(IO service)
           
 void serviceStopped(IOService s)
           
 void setName(java.lang.String name)
           
 void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
          Sets all configuration properties for object.
 void start()
           
 void streamClosed(XMPPIOService s)
           
 java.lang.String streamOpened(XMPPIOService s, java.util.Map<java.lang.String,java.lang.String> attribs)
           
 void writePacketsToSocket(IO serv, java.util.Queue<Packet> packets)
           
 boolean writePacketToSocket(IO ios, Packet p)
           
protected  boolean writePacketToSocket(Packet p)
           
protected  boolean writePacketToSocket(Packet p, java.lang.String serviceId)
           
protected  void writeRawData(IO ios, java.lang.String data)
           
abstract  void xmppStreamClosed(IO serv)
           
abstract  java.lang.String xmppStreamOpened(IO s, java.util.Map<java.lang.String,java.lang.String> attribs)
           
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, clearRegexRoutings, everyMinute, everySecond, getComponentId, getDefHostName, getMaxQueueSize, getName, getRegexRoutings, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isInRegexRoutings, isLocalDomain, isLocalDomainOrComponent, processingThreads, processPacket, removeRegexRouting, setMaxQueueSize, setParent, setVHostManager, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NET_BUFFER_ST_PROP_KEY

public static final java.lang.String NET_BUFFER_ST_PROP_KEY
See Also:
Constant Field Values

NET_BUFFER_HT_PROP_KEY

public static final java.lang.String NET_BUFFER_HT_PROP_KEY
See Also:
Constant Field Values

PORT_KEY

protected static final java.lang.String PORT_KEY
See Also:
Constant Field Values

PROP_KEY

protected static final java.lang.String PROP_KEY
See Also:
Constant Field Values

PORTS_PROP_KEY

protected static final java.lang.String PORTS_PROP_KEY
See Also:
Constant Field Values

PORT_TYPE_PROP_KEY

protected static final java.lang.String PORT_TYPE_PROP_KEY
See Also:
Constant Field Values

PORT_SOCKET_PROP_KEY

protected static final java.lang.String PORT_SOCKET_PROP_KEY
See Also:
Constant Field Values

PORT_IFC_PROP_KEY

protected static final java.lang.String PORT_IFC_PROP_KEY
See Also:
Constant Field Values

PORT_CLASS_PROP_KEY

protected static final java.lang.String PORT_CLASS_PROP_KEY
See Also:
Constant Field Values

PORT_REMOTE_HOST_PROP_KEY

protected static final java.lang.String PORT_REMOTE_HOST_PROP_KEY
See Also:
Constant Field Values

PORT_REMOTE_HOST_PROP_VAL

protected static final java.lang.String PORT_REMOTE_HOST_PROP_VAL
See Also:
Constant Field Values

TLS_PROP_KEY

protected static final java.lang.String TLS_PROP_KEY
See Also:
Constant Field Values

TLS_USE_PROP_KEY

protected static final java.lang.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 java.lang.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

TLS_KEYS_STORE_PROP_KEY

protected static final java.lang.String TLS_KEYS_STORE_PROP_KEY
See Also:
Constant Field Values

TLS_KEYS_STORE_PROP_VAL

protected static final java.lang.String TLS_KEYS_STORE_PROP_VAL

TLS_DEF_CERT_PROP_KEY

protected static final java.lang.String TLS_DEF_CERT_PROP_KEY
See Also:
Constant Field Values

TLS_DEF_CERT_PROP_VAL

protected static final java.lang.String TLS_DEF_CERT_PROP_VAL
See Also:
Constant Field Values

TLS_KEYS_STORE_PASSWD_PROP_KEY

protected static final java.lang.String TLS_KEYS_STORE_PASSWD_PROP_KEY
See Also:
Constant Field Values

TLS_KEYS_STORE_PASSWD_PROP_VAL

protected static final java.lang.String TLS_KEYS_STORE_PASSWD_PROP_VAL
See Also:
Constant Field Values

TLS_TRUSTS_STORE_PASSWD_PROP_KEY

protected static final java.lang.String TLS_TRUSTS_STORE_PASSWD_PROP_KEY
See Also:
Constant Field Values

TLS_TRUSTS_STORE_PASSWD_PROP_VAL

protected static final java.lang.String TLS_TRUSTS_STORE_PASSWD_PROP_VAL
See Also:
Constant Field Values

TLS_TRUSTS_STORE_PROP_KEY

protected static final java.lang.String TLS_TRUSTS_STORE_PROP_KEY
See Also:
Constant Field Values

TLS_TRUSTS_STORE_PROP_VAL

protected static final java.lang.String TLS_TRUSTS_STORE_PROP_VAL

TLS_CONTAINER_CLASS_PROP_KEY

protected static final java.lang.String TLS_CONTAINER_CLASS_PROP_KEY
See Also:
Constant Field Values

TLS_CONTAINER_CLASS_PROP_VAL

protected static final java.lang.String TLS_CONTAINER_CLASS_PROP_VAL
See Also:
Constant Field Values

TLS_SERVER_CERTS_DIR_PROP_KEY

protected static final java.lang.String TLS_SERVER_CERTS_DIR_PROP_KEY
See Also:
Constant Field Values

TLS_SERVER_CERTS_DIR_PROP_VAL

protected static final java.lang.String TLS_SERVER_CERTS_DIR_PROP_VAL
See Also:
Constant Field Values

TLS_TRUSTED_CERTS_DIR_PROP_KEY

protected static final java.lang.String TLS_TRUSTED_CERTS_DIR_PROP_KEY
See Also:
Constant Field Values

TLS_TRUSTED_CERTS_DIR_PROP_VAL

protected static final java.lang.String TLS_TRUSTED_CERTS_DIR_PROP_VAL
See Also:
Constant Field Values

TLS_ALLOW_SELF_SIGNED_CERTS_PROP_KEY

protected static final java.lang.String TLS_ALLOW_SELF_SIGNED_CERTS_PROP_KEY
See Also:
Constant Field Values

TLS_ALLOW_SELF_SIGNED_CERTS_PROP_VAL

protected static final java.lang.String TLS_ALLOW_SELF_SIGNED_CERTS_PROP_VAL
See Also:
Constant Field Values

TLS_ALLOW_INVALID_CERTS_PROP_KEY

protected static final java.lang.String TLS_ALLOW_INVALID_CERTS_PROP_KEY
See Also:
Constant Field Values

TLS_ALLOW_INVALID_CERTS_PROP_VAL

protected static final java.lang.String TLS_ALLOW_INVALID_CERTS_PROP_VAL
See Also:
Constant Field Values

MAX_RECONNECTS_PROP_KEY

protected static final java.lang.String MAX_RECONNECTS_PROP_KEY
See Also:
Constant Field Values

NET_BUFFER_PROP_KEY

protected static final java.lang.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

connectionDelay

protected long connectionDelay

net_buffer

protected int net_buffer
Constructor Detail

ConnectionManager

public ConnectionManager()
Method Detail

setName

public void setName(java.lang.String name)
Specified by:
setName in interface ServerComponent
Overrides:
setName in class AbstractMessageReceiver

initializationCompleted

public void initializationCompleted()
Specified by:
initializationCompleted in interface ServerComponent
Overrides:
initializationCompleted in class AbstractMessageReceiver

addWaitingTask

protected void addWaitingTask(java.util.Map<java.lang.String,java.lang.Object> conn)

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

release

public void release()
Specified by:
release in interface ServerComponent
Overrides:
release in class AbstractMessageReceiver

start

public void start()
Specified by:
start in interface MessageReceiver
Overrides:
start in class AbstractMessageReceiver

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 AbstractMessageReceiver

getDefPlainPorts

protected int[] getDefPlainPorts()

getDefSSLPorts

protected int[] getDefSSLPorts()

getParamsForPort

protected java.util.Map<java.lang.String,java.lang.Object> getParamsForPort(int port)

packetsReady

public void packetsReady(IOService s)
                  throws java.io.IOException
Describe packetsReady method here.

Specified by:
packetsReady in interface IOServiceListener
Parameters:
s - an IOService value
Throws:
java.io.IOException

packetsReady

public void packetsReady(IO serv)
                  throws java.io.IOException
Throws:
java.io.IOException

writePacketsToSocket

public void writePacketsToSocket(IO serv,
                                 java.util.Queue<Packet> packets)

writePacketToSocket

public boolean writePacketToSocket(IO ios,
                                   Packet p)

writeRawData

protected void writeRawData(IO ios,
                            java.lang.String data)

writePacketToSocket

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

writePacketToSocket

protected boolean writePacketToSocket(Packet p,
                                      java.lang.String serviceId)

getXMPPIOService

protected IO getXMPPIOService(java.lang.String serviceId)

getXMPPIOService

protected IO getXMPPIOService(Packet p)

processPacket

public void processPacket(Packet packet)
Specified by:
processPacket in class AbstractMessageReceiver

processSocketData

public abstract java.util.Queue<Packet> processSocketData(IO serv)

serviceStopped

public void serviceStopped(IOService s)
Specified by:
serviceStopped in interface IOServiceListener

serviceStopped

public boolean serviceStopped(IO service)
Parameters:
service -
Returns:

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)

getUniqueId

protected java.lang.String getUniqueId(IO serv)

getServiceId

protected java.lang.String getServiceId(Packet packet)

getServiceId

protected java.lang.String getServiceId(java.lang.String jid)

streamClosed

public void streamClosed(XMPPIOService s)
Specified by:
streamClosed in interface XMPPIOServiceListener

xmppStreamClosed

public abstract void xmppStreamClosed(IO serv)

streamOpened

public java.lang.String streamOpened(XMPPIOService s,
                                     java.util.Map<java.lang.String,java.lang.String> attribs)
Specified by:
streamOpened in interface XMPPIOServiceListener

xmppStreamOpened

public abstract java.lang.String xmppStreamOpened(IO s,
                                                  java.util.Map<java.lang.String,java.lang.String> attribs)

countIOServices

protected int countIOServices()

getStatistics

public java.util.List<StatRecord> getStatistics()
Specified by:
getStatistics in interface StatisticsContainer
Overrides:
getStatistics in class AbstractMessageReceiver

getXMPPIOServiceInstance

protected abstract IO getXMPPIOServiceInstance()

isHighThroughput

protected boolean isHighThroughput()

doForAllServices

protected void doForAllServices(ServiceChecker checker)

getMaxInactiveTime

protected abstract long getMaxInactiveTime()


Copyright © 2009 Tigase. All Rights Reserved.