Package tigase.server
Class AbstractComponentRegistrator<E extends ServerComponent>
java.lang.Object
tigase.server.BasicComponent
tigase.server.AbstractComponentRegistrator<E>
- All Implemented Interfaces:
ClusteredComponentIfc
,Configurable
,XMPPService
,ConfigurationChangedAware
,Initializable
,ComponentRegistrator
,ServerComponent
,VHostListener
- Direct Known Subclasses:
ClusterController
,ConfiguratorAbstract
,StatisticsCollector
,VHostManager
,XMPPServiceCollector
public abstract class AbstractComponentRegistrator<E extends ServerComponent>
extends BasicComponent
implements ComponentRegistrator
This is an archetype of a special types of classes which collect some data from Tigase components or provide these
data to components. They normally do not process normall packets and are usually accessed by admins via ad-hoc
commands. Good examples of such components are
Extensions of these class can process packets addresses to the component via
The class does not have any queues buffering packets or separate threads for packets processing. All packets are processed from
Created: Tue Nov 22 22:57:44 2005
StatisticsCollector
or Configurator
.Extensions of these class can process packets addresses to the component via
processPacket(Packet packet,
Queue<Packet> results)
method. Alternatively scripting API can be used via ad-hoc commands.The class does not have any queues buffering packets or separate threads for packets processing. All packets are processed from
MessageRouter
threads via processPacket(Packet packet, Queue<Packet>
results)
method. Hence this is important that processing implemented in extensions to the class does not take
long time. In particular no DB processing is expected.
Created: Tue Nov 22 22:57:44 2005
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension
-
Field Summary
FieldsModifier and TypeFieldDescriptionA collection of server components which implement special interface, related to the functionality provided by extension of the class.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
ConstructorsConstructorDescriptionCreates a newAbstractComponentRegistrator
instance. -
Method Summary
Modifier and TypeMethodDescriptionboolean
addComponent
(ServerComponent component) Method checks whether the component is of a correct type, adds it to the internalcomponents
collection and callscomponentAdded(...)
callback.abstract void
componentAdded
(E component) Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponents
collection.abstract void
componentRemoved
(E component) Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponents
collection.boolean
deleteComponent
(ServerComponent component) Method removes specified component from the internalcomponents
collection and callscomponentRemoved(...)
callback method.getComponent
(String name) Method returns a component for a specified component name from internalcomponents
collection ornull
of there is no such component in the collection.abstract boolean
isCorrectType
(ServerComponent component) Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class.newPacketId
(String prefix) Method generates and returns an unique packet ID.void
release()
Method called when component is being stopped and unloaded.Methods inherited from class tigase.server.BasicComponent
addComponentDomain, beanConfigurationChanged, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, everyHour, everyMinute, everySecond, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoCategoryType, getDiscoDescription, getDiscoExtensionsForm, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getStatistics, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initBindings, initializationCompleted, initialize, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processPacket, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setCompId, setName, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity
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, getComponentInfo, getName, initializationCompleted, isInitializationComplete, processPacket, setName
-
Field Details
-
components
A collection of server components which implement special interface, related to the functionality provided by extension of the class.
-
-
Constructor Details
-
AbstractComponentRegistrator
public AbstractComponentRegistrator()Creates a newAbstractComponentRegistrator
instance.
-
-
Method Details
-
componentAdded
Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponents
collection.- Parameters:
component
- is a reference to the component just added to the collection.- Throws:
ConfigurationException
-
componentRemoved
Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponents
collection.- Parameters:
component
- is a reference to the component removed from the collection.
-
isCorrectType
Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class. Result of the method determines whether the component can be added to the internalcomponents
collection.- Parameters:
component
- is a reference to the component being checked.- Returns:
- a
boolean
value oftrue
if the component is of a correct type andfalse
otherwise.
-
addComponent
Method checks whether the component is of a correct type, adds it to the internalcomponents
collection and callscomponentAdded(...)
callback.- Specified by:
addComponent
in interfaceComponentRegistrator
- Parameters:
component
- a reference to the component which is being added to the intenal collection.- Returns:
- a
boolean
value oftrue
if the component has been added to the internal collection andfalse
otherwise. - Throws:
ConfigurationException
-
deleteComponent
Method removes specified component from the internalcomponents
collection and callscomponentRemoved(...)
callback method.- Specified by:
deleteComponent
in interfaceComponentRegistrator
- Parameters:
component
- is a reference to the component being removed.- Returns:
- a
boolean
value oftrue
if the component has been removed from the internal collection andfalse
otherwise.
-
getComponent
Method returns a component for a specified component name from internalcomponents
collection ornull
of there is no such component in the collection.- Parameters:
name
- is aString
value of the component name.- Returns:
- a reference to the component found in the internal collection or
null
if no component has been found.
-
newPacketId
Method generates and returns an unique packet ID. The ID is unique within running Tigase instance. The method can be overwritten to change the generation of the packet ID.- Parameters:
prefix
- is aString
value of the ID profix ornull
if no prefix is necessary.- Returns:
- a
String
instance of a new packet ID.
-
release
public void release()Description copied from interface:ServerComponent
Method called when component is being stopped and unloaded.- Specified by:
release
in interfaceServerComponent
- Overrides:
release
in classBasicComponent
-