Package tigase.eventbus.component
Class EventBusComponent
- java.lang.Object
-
- tigase.server.BasicComponent
-
- tigase.server.AbstractMessageReceiver
-
- tigase.component.AbstractKernelBasedComponent
-
- tigase.eventbus.component.EventBusComponent
-
- All Implemented Interfaces:
ClusteredComponentIfc,Configurable,XMPPService,ConfigurationChangedAware,Initializable,RegistrarBean,DisableDisco,MessageReceiver,PacketWriterWithTimeout,ServerComponent,StatisticsContainer,StatisticsContainerIfc,VHostListener
- Direct Known Subclasses:
EventBusComponent
@Bean(name="eventbus", parent=Kernel.class, active=true) @ConfigType({DefaultMode,SessionManagerMode,ConnectionManagersMode,ComponentMode}) public class EventBusComponent extends AbstractKernelBasedComponent implements ClusteredComponentIfc
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class tigase.component.AbstractKernelBasedComponent
AbstractKernelBasedComponent.DefaultPacketWriter
-
Nested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension
-
Nested classes/interfaces inherited from interface tigase.server.PacketWriterWithTimeout
PacketWriterWithTimeout.Handler
-
-
Field Summary
-
Fields inherited from class tigase.component.AbstractKernelBasedComponent
eventBus, kernel, log
-
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, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, SCHEDULER_THREADS_PROP_KEY, SECOND
-
Fields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManager
-
Fields inherited from interface tigase.conf.Configurable
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_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_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, EVENTBUS_CLASS_NAME, 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, 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
-
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
-
-
Constructor Summary
Constructors Constructor Description EventBusComponent()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetDiscoCategory()Method returns category of a component used for service discovery responses.java.lang.StringgetDiscoCategoryType()Method returns component category type used for service discovery responses.java.lang.StringgetDiscoDescription()Method returns description used for service discovery responses.voidgetStatistics(StatisticsList list)Method returns component statistics.booleanisDiscoNonAdmin()Is this component discoverable by disco#items for domain by non admin users.booleanisSubdomain()protected voidonNodeConnected(JID jid)voidonNodeDisconnected(JID jid)voidprocessPacket(Packet packet)This is the mainPacketprocessing method.protected voidregisterModules(Kernel kernel)voidsetClusterController(ClusterControllerIfc cl_controller)Set's the configures the cluster controller object for cluster communication and API.-
Methods inherited from class tigase.component.AbstractKernelBasedComponent
createScriptEngineManager, getComponentVersion, getKernel, initBindings, register, start, unregister, updateServiceEntity
-
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, beanConfigurationChanged, clearRegexRoutings, everyHour, everyMinute, everySecond, getMaxQueueSize, getRegexRoutings, getResourceForPacketWithTimeout, hashCodeForPacket, isInRegexRoutings, newPacketId, processingInThreads, processingOutThreads, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setCompId, setIncoming_filters, setName, setOutgoing_filters, setParent, setSchedulerThreads_size, stop, updateFiltersName
-
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, initialize, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isTrusted, isTrusted, nodeConnected, nodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setCommandsACL, setProperties, setScriptsBaseDir, 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.cluster.api.ClusteredComponentIfc
nodeConnected, nodeDisconnected
-
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
-
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName
-
Methods inherited from interface tigase.stats.StatisticsContainerIfc
getName
-
Methods inherited from interface tigase.disco.XMPPService
getDiscoFeatures, getDiscoInfo, getDiscoItems
-
-
-
-
Method Detail
-
getDiscoCategory
public java.lang.String getDiscoCategory()
Description copied from class:BasicComponentMethod returns category of a component used for service discovery responses.- Overrides:
getDiscoCategoryin classBasicComponent- Returns:
- category of a component
-
getDiscoCategoryType
public java.lang.String getDiscoCategoryType()
Description copied from class:BasicComponentMethod returns component category type used for service discovery responses.- Overrides:
getDiscoCategoryTypein classBasicComponent- Returns:
- category type of a component
-
getDiscoDescription
public java.lang.String getDiscoDescription()
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classBasicComponent- Returns:
- description of a component
-
getStatistics
public void getStatistics(StatisticsList list)
Description copied from class:AbstractMessageReceiverMethod returns component statistics. Please note, the method can be called every second by the server monitoring system therefore no extensive or lengthy calculations are allowed. If there are some statistics requiring lengthy operations like database access they must haveLevel.FINESTassigned and must be put inside the level guard to prevent generating them by the system monitor. The system monitor does not collectFINESTstatistics.
Level guard code looks like the example below:
if (list.checkLevel(Level.FINEST)) { // Some CPU intensive calculations or lengthy operations list.add(getName(), "Statistic description", stat_value, Level.FINEST); }This way you make sure your extensive operation is not executed every second by the monitoring system and does not affect the server performance.- Specified by:
getStatisticsin interfaceStatisticsContainerIfc- Overrides:
getStatisticsin classAbstractMessageReceiver- Parameters:
list- is aStatistcsListwhere all statistics are stored.
-
isDiscoNonAdmin
public boolean isDiscoNonAdmin()
Description copied from class:AbstractKernelBasedComponentIs this component discoverable by disco#items for domain by non admin users.- Specified by:
isDiscoNonAdminin classAbstractKernelBasedComponent- Returns:
true- if yes
-
isSubdomain
public boolean isSubdomain()
- Overrides:
isSubdomainin classBasicComponent
-
onNodeDisconnected
public void onNodeDisconnected(JID jid)
- Overrides:
onNodeDisconnectedin classBasicComponent
-
processPacket
public void processPacket(Packet packet)
Description copied from class:AbstractMessageReceiverThis is the mainPacketprocessing method. It is called concurrently from many threads so implementing it in thread save manner is essential. The method is called for each packet addressed to the component.
Please note, thePacketinstance may be processed by different parts of the server, different components or plugins at the same time. Therefore this is very important to tread thePacketinstance as unmodifiable object.
Processing in this method is asynchronous, therefore there is no result value. If there are some 'result' packets generated during processing, they should be passed back usingaddOutPacket(Packet)method.- Overrides:
processPacketin classAbstractKernelBasedComponent- Parameters:
packet- is an instance of thePacketclass passed for processing.
-
setClusterController
public void setClusterController(ClusterControllerIfc cl_controller)
Description copied from interface:ClusteredComponentIfcSet's the configures the cluster controller object for cluster communication and API.- Specified by:
setClusterControllerin interfaceClusteredComponentIfc- Overrides:
setClusterControllerin classBasicComponent- Parameters:
cl_controller- cluster controller object used for cluster communication
-
onNodeConnected
protected void onNodeConnected(JID jid)
- Overrides:
onNodeConnectedin classBasicComponent
-
registerModules
protected void registerModules(Kernel kernel)
- Specified by:
registerModulesin classAbstractKernelBasedComponent
-
-