tigase.server.sreceiver
Class StanzaReceiver

java.lang.Object
  extended by tigase.server.BasicComponent
      extended by tigase.server.AbstractMessageReceiver
          extended by tigase.server.sreceiver.StanzaReceiver
All Implemented Interfaces:
Configurable, XMPPService, MessageReceiver, ServerComponent, StanzaReceiverIfc, StatisticsContainer, VHostListener

public class StanzaReceiver
extends AbstractMessageReceiver
implements Configurable, XMPPService, StanzaReceiverIfc

This is a sibbling of StanzaSender class and offers just an opposite functionaity. It can receive XMPP packets to do something with them. And what to do it depends on the destination address. Destination address points to certain receiver task and this is up to task to decide what to do with the stanza. Task address is just a usuall Jabber ID: task-short-name@srec.tigase.org.

Like public chat rooms in MUC tasks can be preconfigured in the StanzaReceiver configuration or can be created on demand using ad-hoc commands and service-discovery. User can subscribe to some tasks and can add them to the roster just like a normal contacts. This allows to use the functionality from all existing clients without implementing any special protocols or extensions.

Possible tasks are:

Task creation parameters:

There can be also some per task specific settings...

Created: Wed May 9 08:27:22 2007

Version:
$Rev: 2047 $
Author:
Artur Hefczyc

Field Summary
static String MY_DOMAIN_NAME_PROP_KEY
          Field description
static String MY_DOMAIN_NAME_PROP_VAL
          Field description
 
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
SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, 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, 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
StanzaReceiver()
          Constructs ...
 
Method Summary
 boolean addOutPacket(Packet packet)
          Method description
protected  void addTaskInstance(ReceiverTaskIfc task)
          Describe addTaskInstance method here.
protected  void addTaskInstance(String task_type, String task_name, Map<String,Object> task_params)
           
 Map<String,Object> getDefaults(Map<String,Object> params)
          Method description
 List<tigase.xml.Element> getDiscoFeatures(tigase.xmpp.JID from)
          Method description
 tigase.xml.Element getDiscoInfo(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
          Describe getDiscoInfo method here.
 List<tigase.xml.Element> getDiscoItems(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
          Method description
 void getStatistics(StatisticsList list)
          Method description
 ReceiverTaskIfc getTask(String jidOrName)
          Method description
protected  Map<String,ReceiverTaskIfc> getTaskInstances()
           
protected  Map<String,TaskType> getTaskTypes()
           
 boolean isAdmin(tigase.xmpp.JID jid)
          Method description
protected  boolean isAllowedCreate(tigase.xmpp.JID jid, String task_type)
           
 void processPacket(Packet packet)
          Describe processPacket method here.
protected  void removeTaskInstance(ReceiverTaskIfc task)
           
protected  void removeTaskSubscribers(ReceiverTaskIfc task, tigase.xmpp.JID... subscr)
           
protected  void saveTaskToRepository(ReceiverTaskIfc task)
           
 void setProperties(Map<String,Object> props)
          Describe setProperties method here.
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everyMinute, everySecond, getMaxQueueSize, getRegexRoutings, hashCodeForPacket, isInRegexRoutings, newPacketId, processingThreads, processPacket, release, removeRegexRouting, setMaxQueueSize, setName, setParent, start, stop
 
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, getComponentId, getDefHostName, getDiscoCategoryType, getDiscoDescription, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initBindings, initializationCompleted, 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.ServerComponent
getComponentId, getName, initializationCompleted, processPacket, release, setName
 
Methods inherited from interface tigase.server.sreceiver.StanzaReceiverIfc
getDefHostName, getName
 
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
 

Field Detail

MY_DOMAIN_NAME_PROP_KEY

public static final String MY_DOMAIN_NAME_PROP_KEY
Field description

See Also:
Constant Field Values

MY_DOMAIN_NAME_PROP_VAL

public static final String MY_DOMAIN_NAME_PROP_VAL
Field description

See Also:
Constant Field Values
Constructor Detail

StanzaReceiver

public StanzaReceiver()
Constructs ...

Method Detail

addOutPacket

public boolean addOutPacket(Packet packet)
Method description

Specified by:
addOutPacket in interface StanzaReceiverIfc
Overrides:
addOutPacket in class AbstractMessageReceiver
Parameters:
packet -
Returns:

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:

getDiscoFeatures

public List<tigase.xml.Element> getDiscoFeatures(tigase.xmpp.JID from)
Method description

Specified by:
getDiscoFeatures in interface XMPPService
Overrides:
getDiscoFeatures in class BasicComponent
Parameters:
from -
Returns:

getDiscoInfo

public tigase.xml.Element getDiscoInfo(String node,
                                       tigase.xmpp.JID jid,
                                       tigase.xmpp.JID from)
Describe getDiscoInfo method here.

Specified by:
getDiscoInfo in interface XMPPService
Overrides:
getDiscoInfo in class BasicComponent
Parameters:
node - a String value
jid - a String value
from -
Returns:
an Element value

getDiscoItems

public List<tigase.xml.Element> getDiscoItems(String node,
                                              tigase.xmpp.JID jid,
                                              tigase.xmpp.JID from)
Method description

Specified by:
getDiscoItems in interface XMPPService
Overrides:
getDiscoItems in class BasicComponent
Parameters:
node -
jid -
from -
Returns:

getStatistics

public void getStatistics(StatisticsList list)
Method description

Specified by:
getStatistics in interface StatisticsContainer
Overrides:
getStatistics in class AbstractMessageReceiver
Parameters:
list -

getTask

public ReceiverTaskIfc getTask(String jidOrName)
Method description

Parameters:
jidOrName -
Returns:

isAdmin

public boolean isAdmin(tigase.xmpp.JID jid)
Method description

Overrides:
isAdmin in class BasicComponent
Parameters:
jid -
Returns:

processPacket

public void processPacket(Packet packet)
Describe processPacket method here.

Specified by:
processPacket in class AbstractMessageReceiver
Parameters:
packet - a Packet value

setProperties

public void setProperties(Map<String,Object> props)
Describe setProperties method here.

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

addTaskInstance

protected void addTaskInstance(String task_type,
                               String task_name,
                               Map<String,Object> task_params)
                        throws tigase.util.TigaseStringprepException
Throws:
tigase.util.TigaseStringprepException

addTaskInstance

protected void addTaskInstance(ReceiverTaskIfc task)
Describe addTaskInstance method here.

Parameters:
task - a ReceiverTaskIfc value

getTaskInstances

protected Map<String,ReceiverTaskIfc> getTaskInstances()

getTaskTypes

protected Map<String,TaskType> getTaskTypes()

isAllowedCreate

protected boolean isAllowedCreate(tigase.xmpp.JID jid,
                                  String task_type)

removeTaskInstance

protected void removeTaskInstance(ReceiverTaskIfc task)

removeTaskSubscribers

protected void removeTaskSubscribers(ReceiverTaskIfc task,
                                     tigase.xmpp.JID... subscr)

saveTaskToRepository

protected void saveTaskToRepository(ReceiverTaskIfc task)
                             throws TigaseDBException
Throws:
TigaseDBException


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