tigase.server
Class ConnectionManager<IO extends XMPPIOService>

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

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: 858 $
Author:
Artur Hefczyc

Field Summary
protected  long connectionDelay
           
protected static java.lang.String MAX_RECONNECTS_PROP_KEY
           
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  long startDelay
           
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
 
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, BOSH_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, DEF_HOSTNAME_PROP_KEY, 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_EXT_COMP, 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, 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_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, SRECV_COMP_CLASS_NAME, SSEND_COMP_CLASS_NAME, TRUSTED_PROP_KEY, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL
 
Constructor Summary
ConnectionManager()
           
 
Method Summary
 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)
           
 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 packetsReady(IO serv)
           
 void packetsReady(IOService s)
          Describe packetsReady method here.
 void processPacket(Packet packet)
           
abstract  java.util.Queue<Packet> processSocketData(IO serv)
           
protected  void reconnectService(java.util.Map<java.lang.String,java.lang.Object> port_props, long delay)
           
 void release()
           
 void serviceStarted(IO service)
           
 void 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()
           
protected  void startService(java.util.Map<java.lang.String,java.lang.Object> port_props)
           
 void streamClosed(XMPPIOService s)
           
 java.lang.String streamOpened(XMPPIOService s, java.util.Map<java.lang.String,java.lang.String> attribs)
           
protected  void writePacketsToSocket(IO serv, java.util.Queue<Packet> packets)
           
protected  boolean writePacketToSocket(IO ios, Packet p)
           
protected  void writePacketToSocket(Packet p)
           
protected  void writePacketToSocket(Packet p, java.lang.String serviceId)
           
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, addPacket, addPackets, addRegexRouting, addRouting, clearRegexRoutings, clearRoutings, getDefHostName, getDefMaxQueueSize, getName, getRegexRoutings, getRoutings, isInRegexRoutings, isInRoutings, myDomain, processPacket, removeRegexRouting, removeRouting, setMaxQueueSize, setParent, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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

connectionDelay

protected long connectionDelay

startDelay

protected long startDelay
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

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

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

startService

protected void startService(java.util.Map<java.lang.String,java.lang.Object> port_props)

reconnectService

protected void reconnectService(java.util.Map<java.lang.String,java.lang.Object> port_props,
                                long delay)

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

protected void writePacketsToSocket(IO serv,
                                    java.util.Queue<Packet> packets)
                             throws java.io.IOException
Throws:
java.io.IOException

writePacketToSocket

protected boolean writePacketToSocket(IO ios,
                                      Packet p)

writePacketToSocket

protected void writePacketToSocket(Packet p)

writePacketToSocket

protected void 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 void serviceStopped(IO service)

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)

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)

getStatistics

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

getXMPPIOServiceInstance

protected abstract IO getXMPPIOServiceInstance()

getMaxInactiveTime

protected abstract long getMaxInactiveTime()


Copyright © 2008 Tigase. All Rights Reserved.