tigase.server.ext
Class ComponentProtocol

java.lang.Object
  extended by tigase.server.BasicComponent
      extended by tigase.server.AbstractMessageReceiver
          extended by tigase.server.ConnectionManager<XMPPIOService<List<ComponentConnection>>>
              extended by tigase.server.ext.ComponentProtocol
All Implemented Interfaces:
Configurable, XMPPService, IOServiceListener<XMPPIOService<List<ComponentConnection>>>, ComponentProtocolHandler, MessageReceiver, ServerComponent, StatisticsContainer, VHostListener, XMPPIOServiceListener<XMPPIOService<List<ComponentConnection>>>

public class ComponentProtocol
extends ConnectionManager<XMPPIOService<List<ComponentConnection>>>
implements ComponentProtocolHandler

Created: Sep 30, 2009 8:28:13 PM

Version:
$Rev$
Author:
Artur Hefczyc

Field Summary
static String AUTHENTICATION_TIMEOUT_PROP_KEY
          Field description
static String CLOSE_ON_SEQUENCE_ERROR_PROP_KEY
          Field description
static String EXTCOMP_BIND_HOSTNAMES
          Field description
static String EXTCOMP_REPO_CLASS_PROP_KEY
          Field description
static String EXTCOMP_REPO_CLASS_PROP_VAL
          Field description
static String EXTCOMP_REPO_CLASS_PROPERTY
          Field description
static String IDENTITY_TYPE_KEY
          Field description
static String IDENTITY_TYPE_VAL
          Field description
static String MAX_AUTH_ATTEMPTS_PROP_KEY
          Field description
static String PACK_ROUTED_KEY
          Field description
 boolean PACK_ROUTED_VAL
          Field description
static String RETURN_SERVICE_DISCO_KEY
          Field description
static boolean RETURN_SERVICE_DISCO_VAL
          Field description
 
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_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, 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, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, SECOND
 
Fields inherited from class tigase.server.BasicComponent
admins, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager
 
Fields inherited from interface tigase.server.ext.ComponentProtocolHandler
EXTCOMP_BIND_HOSTNAMES_PROP_KEY, REPO_ITEM_KEY
 
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, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, 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_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_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_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, 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, 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_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
 
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
 
Constructor Summary
ComponentProtocol()
          Constructs ...
 
Method Summary
 void authenticated(XMPPIOService<List<ComponentConnection>> serv)
          Method description
 void authenticationFailed(XMPPIOService<List<ComponentConnection>> serv, Packet packet)
          Method description
 void bindHostname(String hostname, XMPPIOService<List<ComponentConnection>> serv)
          Method description
 CompRepoItem getCompRepoItem(String hostname)
          Method description
 Map<String,Object> getDefaults(Map<String,Object> params)
          Method description
 String getDiscoCategoryType()
          Method description
 String getDiscoDescription()
          Method description
protected  long getMaxInactiveTime()
           
protected  Integer getMaxQueueSize(int def)
           
 ExtProcessor getProcessor(String key)
          Method description
 void getStatistics(StatisticsList list)
          Method description
 List<tigase.xml.Element> getStreamFeatures(XMPPIOService<List<ComponentConnection>> serv)
          Method description
 StreamOpenHandler getStreamOpenHandler(String xmlns)
          Method description
protected  XMPPIOService<List<ComponentConnection>> getXMPPIOService(Packet p)
           
protected  XMPPIOService<List<ComponentConnection>> getXMPPIOServiceInstance()
           
 int hashCodeForPacket(Packet packet)
          This method can be overwritten in extending classes to get a different packets distribution to different threads.
 void initBindings(javax.script.Bindings binds)
          Method description
protected  boolean isHighThroughput()
           
 int processingThreads()
          Method description
 Queue<Packet> processSocketData(XMPPIOService<List<ComponentConnection>> serv)
          Method description
 void serviceStarted(XMPPIOService<List<ComponentConnection>> serv)
          Method description
 boolean serviceStopped(XMPPIOService<List<ComponentConnection>> service)
          Method description
 void setProperties(Map<String,Object> properties)
          Method description
 void unbindHostname(String hostname, XMPPIOService<List<ComponentConnection>> serv)
          Method description
 boolean writePacketToSocket(XMPPIOService<List<ComponentConnection>> ios, Packet p)
          Method description
 void xmppStreamClosed(XMPPIOService<List<ComponentConnection>> serv)
          Method description
 String xmppStreamOpened(XMPPIOService<List<ComponentConnection>> serv, Map<String,String> attribs)
          Method description
 
Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, countIOServices, doForAllServices, getDefPlainPorts, getDefSSLPorts, getParamsForPort, getServiceId, getServiceId, getUniqueId, getXMPPIOService, initializationCompleted, packetsReady, processPacket, release, setName, start, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawData
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everyMinute, everySecond, getRegexRoutings, isInRegexRoutings, newPacketId, processPacket, removeRegexRouting, setMaxQueueSize, setParent, stop
 
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, getComponentId, getDefHostName, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, 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.server.ext.ComponentProtocolHandler
newPacketId
 
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
 
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getName
 

Field Detail

EXTCOMP_REPO_CLASS_PROPERTY

public static final String EXTCOMP_REPO_CLASS_PROPERTY
Field description

See Also:
Constant Field Values

EXTCOMP_REPO_CLASS_PROP_KEY

public static final String EXTCOMP_REPO_CLASS_PROP_KEY
Field description

See Also:
Constant Field Values

EXTCOMP_REPO_CLASS_PROP_VAL

public static final String EXTCOMP_REPO_CLASS_PROP_VAL
Field description

See Also:
Constant Field Values

EXTCOMP_BIND_HOSTNAMES

public static final String EXTCOMP_BIND_HOSTNAMES
Field description

See Also:
Constant Field Values

PACK_ROUTED_KEY

public static final String PACK_ROUTED_KEY
Field description

See Also:
Constant Field Values

RETURN_SERVICE_DISCO_KEY

public static final String RETURN_SERVICE_DISCO_KEY
Field description

See Also:
Constant Field Values

RETURN_SERVICE_DISCO_VAL

public static final boolean RETURN_SERVICE_DISCO_VAL
Field description

See Also:
Constant Field Values

IDENTITY_TYPE_KEY

public static final String IDENTITY_TYPE_KEY
Field description

See Also:
Constant Field Values

IDENTITY_TYPE_VAL

public static final String IDENTITY_TYPE_VAL
Field description

See Also:
Constant Field Values

CLOSE_ON_SEQUENCE_ERROR_PROP_KEY

public static final String CLOSE_ON_SEQUENCE_ERROR_PROP_KEY
Field description

See Also:
Constant Field Values

MAX_AUTH_ATTEMPTS_PROP_KEY

public static final String MAX_AUTH_ATTEMPTS_PROP_KEY
Field description

See Also:
Constant Field Values

AUTHENTICATION_TIMEOUT_PROP_KEY

public static final String AUTHENTICATION_TIMEOUT_PROP_KEY
Field description

See Also:
Constant Field Values

PACK_ROUTED_VAL

public boolean PACK_ROUTED_VAL
Field description

Constructor Detail

ComponentProtocol

public ComponentProtocol()
Constructs ...

Method Detail

authenticated

public void authenticated(XMPPIOService<List<ComponentConnection>> serv)
Method description

Specified by:
authenticated in interface ComponentProtocolHandler
Parameters:
serv -

authenticationFailed

public void authenticationFailed(XMPPIOService<List<ComponentConnection>> serv,
                                 Packet packet)
Method description

Specified by:
authenticationFailed in interface ComponentProtocolHandler
Parameters:
serv -
packet -

bindHostname

public void bindHostname(String hostname,
                         XMPPIOService<List<ComponentConnection>> serv)
Method description

Specified by:
bindHostname in interface ComponentProtocolHandler
Parameters:
hostname -
serv -

getCompRepoItem

public CompRepoItem getCompRepoItem(String hostname)
Method description

Specified by:
getCompRepoItem in interface ComponentProtocolHandler
Parameters:
hostname -
Returns:

getDefaults

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

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>
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:

getProcessor

public ExtProcessor getProcessor(String key)
Method description

Specified by:
getProcessor in interface ComponentProtocolHandler
Parameters:
key -
Returns:

getStatistics

public void getStatistics(StatisticsList list)
Method description

Specified by:
getStatistics in interface StatisticsContainer
Overrides:
getStatistics in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>
Parameters:
list -

getStreamFeatures

public List<tigase.xml.Element> getStreamFeatures(XMPPIOService<List<ComponentConnection>> serv)
Method description

Specified by:
getStreamFeatures in interface ComponentProtocolHandler
Parameters:
serv -
Returns:

getStreamOpenHandler

public StreamOpenHandler getStreamOpenHandler(String xmlns)
Method description

Specified by:
getStreamOpenHandler in interface ComponentProtocolHandler
Parameters:
xmlns -
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 AbstractMessageReceiver
Parameters:
packet -
Returns:

initBindings

public void initBindings(javax.script.Bindings binds)
Method description

Overrides:
initBindings in class BasicComponent
Parameters:
binds -

processSocketData

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

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

processingThreads

public int processingThreads()
Method description

Overrides:
processingThreads in class AbstractMessageReceiver
Returns:

serviceStarted

public void serviceStarted(XMPPIOService<List<ComponentConnection>> serv)
Method description

Overrides:
serviceStarted in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>
Parameters:
serv -

serviceStopped

public boolean serviceStopped(XMPPIOService<List<ComponentConnection>> service)
Method description

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

setProperties

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

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>
Parameters:
properties -

unbindHostname

public void unbindHostname(String hostname,
                           XMPPIOService<List<ComponentConnection>> serv)
Method description

Specified by:
unbindHostname in interface ComponentProtocolHandler
Parameters:
hostname -
serv -

writePacketToSocket

public boolean writePacketToSocket(XMPPIOService<List<ComponentConnection>> ios,
                                   Packet p)
Method description

Overrides:
writePacketToSocket in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>
Parameters:
ios -
p -
Returns:

xmppStreamClosed

public void xmppStreamClosed(XMPPIOService<List<ComponentConnection>> serv)
Method description

Specified by:
xmppStreamClosed in interface XMPPIOServiceListener<XMPPIOService<List<ComponentConnection>>>
Parameters:
serv -

xmppStreamOpened

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

Specified by:
xmppStreamOpened in interface XMPPIOServiceListener<XMPPIOService<List<ComponentConnection>>>
Parameters:
serv -
attribs -
Returns:

getMaxInactiveTime

protected long getMaxInactiveTime()
Specified by:
getMaxInactiveTime in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>

getMaxQueueSize

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

getXMPPIOService

protected XMPPIOService<List<ComponentConnection>> getXMPPIOService(Packet p)
Overrides:
getXMPPIOService in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>

getXMPPIOServiceInstance

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

isHighThroughput

protected boolean isHighThroughput()
Overrides:
isHighThroughput in class ConnectionManager<XMPPIOService<List<ComponentConnection>>>


Copyright © 2001-2006 Tigase Developers Team. All rights Reserved.