public class StanzaReceiver extends AbstractMessageReceiver implements Configurable, XMPPService, StanzaReceiverIfc
StanzaSender
class and offers just an
opposite functionality. 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 usual 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:
ad-hoc
commands should present available tasks types which can be created. User can
select a task to create. There may be some restrictions on tasks creation
like certain types can be created only by server administrator or some tasks
types can be created only once on single server and so on.subscribe
presence is sent to these users and they
can accept the subscription or not.chat
, headline
or normal
.all
, subscribed
,
owner
, list
Created: Wed May 9 08:27:22 2007
Modifier and Type | Field and Description |
---|---|
static String |
MY_DOMAIN_NAME_PROP_KEY
Field description
|
static String |
MY_DOMAIN_NAME_PROP_VAL
Field description
|
HOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, SCHEDULER_THREADS_PROP_KEY, SECOND
ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager
ADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_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, DEF_WS2S_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, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
Constructor and Description |
---|
StanzaReceiver()
Constructs ...
|
Modifier and Type | Method and Description |
---|---|
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. |
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everyMinute, everySecond, getMaxQueueSize, getRegexRoutings, hashCodeForPacket, isInRegexRoutings, newPacketId, processingInThreads, processingOutThreads, processingThreads, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setMaxQueueSize, setName, setParent, start, stop
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getComponentInfo, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoCategoryType, getDiscoDescription, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initBindings, initializationCompleted, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName
getDefHostName, getName
getDefHostName
public static final String MY_DOMAIN_NAME_PROP_KEY
public static final String MY_DOMAIN_NAME_PROP_VAL
public boolean addOutPacket(Packet packet)
addOutPacket
in interface StanzaReceiverIfc
addOutPacket
in class AbstractMessageReceiver
packet
- boolean
public Map<String,Object> getDefaults(Map<String,Object> params)
getDefaults
in interface Configurable
getDefaults
in class AbstractMessageReceiver
params
- Map
with the component default configuration.public List<tigase.xml.Element> getDiscoFeatures(tigase.xmpp.JID from)
getDiscoFeatures
in interface XMPPService
getDiscoFeatures
in class BasicComponent
from
- List
public tigase.xml.Element getDiscoInfo(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
getDiscoInfo
method here.getDiscoInfo
in interface XMPPService
getDiscoInfo
in class BasicComponent
node
- a String
valuejid
- a String
valuefrom
- Element
valuepublic List<tigase.xml.Element> getDiscoItems(String node, tigase.xmpp.JID jid, tigase.xmpp.JID from)
getDiscoItems
in interface XMPPService
getDiscoItems
in class BasicComponent
node
- jid
- from
- List
public void getStatistics(StatisticsList list)
getStatistics
in interface StatisticsContainer
getStatistics
in class AbstractMessageReceiver
list
- public ReceiverTaskIfc getTask(String jidOrName)
jidOrName
- public boolean isAdmin(tigase.xmpp.JID jid)
isAdmin
in class BasicComponent
jid
- boolean
public void processPacket(Packet packet)
processPacket
method here.processPacket
in class AbstractMessageReceiver
packet
- a Packet
valuepublic void setProperties(Map<String,Object> props) throws ConfigurationException
setProperties
method here.setProperties
in interface Configurable
setProperties
in class AbstractMessageReceiver
props
- a Map
valueConfigurationException
protected void addTaskInstance(String task_type, String task_name, Map<String,Object> task_params) throws tigase.util.TigaseStringprepException
tigase.util.TigaseStringprepException
protected void addTaskInstance(ReceiverTaskIfc task)
addTaskInstance
method here.task
- a ReceiverTaskIfc
valueprotected Map<String,ReceiverTaskIfc> getTaskInstances()
protected boolean isAllowedCreate(tigase.xmpp.JID jid, String task_type)
protected void removeTaskInstance(ReceiverTaskIfc task)
protected void removeTaskSubscribers(ReceiverTaskIfc task, tigase.xmpp.JID... subscr)
protected void saveTaskToRepository(ReceiverTaskIfc task) throws TigaseDBException
TigaseDBException
Copyright © 2014 "Tigase, Inc.". All rights reserved.