tigase.pubsub
Class PubSubComponent

java.lang.Object
  extended by tigase.server.AbstractMessageReceiver
      extended by tigase.pubsub.PubSubComponent
All Implemented Interfaces:
tigase.conf.Configurable, tigase.disco.XMPPService, DefaultNodeConfigListener, tigase.server.DisableDisco, tigase.server.MessageReceiver, tigase.server.ServerComponent, tigase.stats.StatisticsContainer, tigase.vhosts.VHostListener
Direct Known Subclasses:
PubSubClusterComponent

public class PubSubComponent
extends tigase.server.AbstractMessageReceiver
implements tigase.disco.XMPPService, tigase.conf.Configurable, tigase.server.DisableDisco, DefaultNodeConfigListener


Field Summary
protected  AdHocConfigCommandModule adHocCommandsModule
           
static java.lang.String ADMINS_KEY
           
protected  PubSubConfig config
           
static java.lang.String DEFAULT_LEAF_NODE_CONFIG_KEY
           
protected  DefaultConfigModule defaultConfigModule
           
protected  LeafNodeConfig defaultNodeConfig
           
protected  PubSubDAO directPubSubRepository
           
protected  ElementWriter elementWriter
           
 java.lang.String[] HOSTNAMES_PROP_VAL
           
protected  java.util.logging.Logger log
           
protected  ManageAffiliationsModule manageAffiliationsModule
           
protected  ManageSubscriptionModule manageSubscriptionModule
           
protected  java.util.ArrayList<Module> modules
           
protected  NodeConfigModule nodeConfigModule
           
protected  NodeCreateModule nodeCreateModule
           
protected  NodeDeleteModule nodeDeleteModule
           
protected  PendingSubscriptionModule pendingSubscriptionModule
           
protected  PresenceCollectorModule presenceCollectorModule
           
protected  PublishItemModule publishNodeModule
           
protected static java.lang.String PUBSUB_REPO_CLASS_PROP_KEY
           
protected static java.lang.String PUBSUB_REPO_POOL_SIZE_PROP_KEY
           
protected static java.lang.String PUBSUB_REPO_URL_PROP_KEY
           
protected  CachedPubSubRepository pubsubRepository
           
protected  PurgeItemsModule purgeItemsModule
           
protected  RetractItemModule retractItemModule
           
protected  RetrieveItemsModule retrirveItemsModule
           
protected  tigase.disco.ServiceEntity serviceEntity
           
protected  AbstractModule subscribeNodeModule
           
protected  UnsubscribeNodeModule unsubscribeNodeModule
           
protected  tigase.db.UserRepository userRepository
           
protected  XsltTool xslTransformer
           
 
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.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
 
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
PubSubComponent()
           
 
Method Summary
protected  CachedPubSubRepository createPubSubRepository(PubSubDAO directRepository)
           
protected  java.lang.String extractNodeName(tigase.xml.Element element)
           
 java.util.Map<java.lang.String,java.lang.Object> getDefaults(java.util.Map<java.lang.String,java.lang.Object> params)
           
 java.util.List<tigase.xml.Element> getDiscoFeatures()
           
 tigase.xml.Element getDiscoInfo(java.lang.String node, java.lang.String jid)
           
 java.util.List<tigase.xml.Element> getDiscoItems(java.lang.String node, java.lang.String jid)
           
 java.util.List<tigase.stats.StatRecord> getStatistics()
           
protected  void init()
           
 void initialize(java.lang.String[] admins, PubSubDAO pubSubDAO, IPubSubRepository createPubSubRepository, LeafNodeConfig defaultNodeConfig)
           
 java.lang.String myDomain()
           
 void onChangeDefaultNodeConfig()
           
 void process(tigase.xml.Element element, ElementWriter writer)
           
 int processingThreads()
           
 void processPacket(tigase.server.Packet packet)
           
<T extends Module>
T
registerModule(T module)
           
protected  boolean runModules(tigase.xml.Element element, ElementWriter writer)
           
 void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
           
 
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, initializationCompleted, isInRegexRoutings, isLocalDomain, isLocalDomainOrComponent, processPacket, release, removeRegexRouting, setMaxQueueSize, setName, setParent, setVHostManager, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface tigase.conf.Configurable
getName
 
Methods inherited from interface tigase.server.ServerComponent
getComponentId, initializationCompleted, processPacket, release, setName
 

Field Detail

ADMINS_KEY

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

DEFAULT_LEAF_NODE_CONFIG_KEY

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

PUBSUB_REPO_CLASS_PROP_KEY

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

PUBSUB_REPO_URL_PROP_KEY

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

PUBSUB_REPO_POOL_SIZE_PROP_KEY

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

adHocCommandsModule

protected AdHocConfigCommandModule adHocCommandsModule

config

protected final PubSubConfig config

defaultConfigModule

protected DefaultConfigModule defaultConfigModule

defaultNodeConfig

protected LeafNodeConfig defaultNodeConfig

directPubSubRepository

protected PubSubDAO directPubSubRepository

elementWriter

protected final ElementWriter elementWriter

HOSTNAMES_PROP_VAL

public java.lang.String[] HOSTNAMES_PROP_VAL

log

protected java.util.logging.Logger log

manageAffiliationsModule

protected ManageAffiliationsModule manageAffiliationsModule

manageSubscriptionModule

protected ManageSubscriptionModule manageSubscriptionModule

modules

protected final java.util.ArrayList<Module> modules

nodeConfigModule

protected NodeConfigModule nodeConfigModule

nodeCreateModule

protected NodeCreateModule nodeCreateModule

nodeDeleteModule

protected NodeDeleteModule nodeDeleteModule

pendingSubscriptionModule

protected PendingSubscriptionModule pendingSubscriptionModule

presenceCollectorModule

protected PresenceCollectorModule presenceCollectorModule

publishNodeModule

protected PublishItemModule publishNodeModule

pubsubRepository

protected CachedPubSubRepository pubsubRepository

purgeItemsModule

protected PurgeItemsModule purgeItemsModule

retractItemModule

protected RetractItemModule retractItemModule

retrirveItemsModule

protected RetrieveItemsModule retrirveItemsModule

serviceEntity

protected tigase.disco.ServiceEntity serviceEntity

subscribeNodeModule

protected AbstractModule subscribeNodeModule

unsubscribeNodeModule

protected UnsubscribeNodeModule unsubscribeNodeModule

userRepository

protected tigase.db.UserRepository userRepository

xslTransformer

protected XsltTool xslTransformer
Constructor Detail

PubSubComponent

public PubSubComponent()
Method Detail

createPubSubRepository

protected CachedPubSubRepository createPubSubRepository(PubSubDAO directRepository)

extractNodeName

protected java.lang.String extractNodeName(tigase.xml.Element element)

getDefaults

public java.util.Map<java.lang.String,java.lang.Object> getDefaults(java.util.Map<java.lang.String,java.lang.Object> params)
Specified by:
getDefaults in interface tigase.conf.Configurable
Overrides:
getDefaults in class tigase.server.AbstractMessageReceiver

getDiscoFeatures

public java.util.List<tigase.xml.Element> getDiscoFeatures()
Specified by:
getDiscoFeatures in interface tigase.disco.XMPPService

getDiscoInfo

public tigase.xml.Element getDiscoInfo(java.lang.String node,
                                       java.lang.String jid)
Specified by:
getDiscoInfo in interface tigase.disco.XMPPService

getDiscoItems

public java.util.List<tigase.xml.Element> getDiscoItems(java.lang.String node,
                                                        java.lang.String jid)
Specified by:
getDiscoItems in interface tigase.disco.XMPPService

getStatistics

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

init

protected void init()

initialize

public void initialize(java.lang.String[] admins,
                       PubSubDAO pubSubDAO,
                       IPubSubRepository createPubSubRepository,
                       LeafNodeConfig defaultNodeConfig)
                throws tigase.db.UserNotFoundException,
                       tigase.db.TigaseDBException,
                       RepositoryException
Throws:
tigase.db.UserNotFoundException
tigase.db.TigaseDBException
RepositoryException

myDomain

public java.lang.String myDomain()

onChangeDefaultNodeConfig

public void onChangeDefaultNodeConfig()
Specified by:
onChangeDefaultNodeConfig in interface DefaultNodeConfigListener

process

public void process(tigase.xml.Element element,
                    ElementWriter writer)
             throws tigase.xmpp.PacketErrorTypeException
Throws:
tigase.xmpp.PacketErrorTypeException

processPacket

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

registerModule

public <T extends Module> T registerModule(T module)

runModules

protected boolean runModules(tigase.xml.Element element,
                             ElementWriter writer)
                      throws PubSubException
Throws:
PubSubException

setProperties

public void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
Specified by:
setProperties in interface tigase.conf.Configurable
Overrides:
setProperties in class tigase.server.AbstractMessageReceiver

processingThreads

public int processingThreads()
Overrides:
processingThreads in class tigase.server.AbstractMessageReceiver


Copyright © 2008-2009 Tigase. All Rights Reserved.