Package tigase.cluster
Class ClusterController
- All Implemented Interfaces:
ClusterControllerIfc,ClusteredComponentIfc,Configurable,XMPPService,ConfigurationChangedAware,Initializable,ComponentRegistrator,ServerComponent,VHostListener
@Bean(name="cluster-contr",
parent=Kernel.class,
active=true,
exportable=true)
@ConfigType({DefaultMode,SessionManagerMode,ConnectionManagersMode,ComponentMode})
@ClusterModeRequired(active=true)
public class ClusterController
extends AbstractComponentRegistrator<ClusteredComponentIfc>
implements Configurable, ClusterControllerIfc
Describe class ClusterController here.
Created: Mon Jun 9 20:03:28 2008
Created: Mon Jun 9 20:03:28 2008
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension -
Field Summary
FieldsFields inherited from class tigase.server.AbstractComponentRegistrator
componentsFields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManagerFields inherited from interface tigase.cluster.api.ClusterControllerIfc
DELIVER_CLUSTER_PACKET_CMDFields 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_ACKFields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcomponentAdded(ClusteredComponentIfc component) Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponentscollection.voidcomponentRemoved(ClusteredComponentIfc component) Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponentscollection.Method returns component category type used for service discovery responses.Method returns description used for service discovery responses.voidhandleClusterPacket(Element packet) Method handles cluster packet received from cluster connection.booleanisCorrectType(ServerComponent component) Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class.voidnodeConnected(String node) Method is called on cluster node connection event.voidnodeDisconnected(String node) Method is called on cluster node disconnection event.voidprocessPacket(Packet packet, Queue<Packet> results) processPacketis a blocking processing method implemented by all components.voidremoveCommandListener(CommandListener listener) voidsendToNodes(String command, Map<String, String> data, Queue<Element> packets, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoidsendToNodes(String command, Map<String, String> data, Element packet, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoidsendToNodes(String command, Map<String, String> data, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoidMethod which sends command to desired nodesvoidsendToNodes(String command, Queue<Element> packets, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoidMethod which sends command to desired nodesvoidsendToNodes(String command, JID fromNode, JID... toNodes) Method which sends command to desired nodesvoidsetCommandListener(CommandListener listener) voidMethod used to assign component name (localpart of the component)Methods inherited from class tigase.server.AbstractComponentRegistrator
addComponent, deleteComponent, getComponent, newPacketId, releaseMethods inherited from class tigase.server.BasicComponent
addComponentDomain, beanConfigurationChanged, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, everyHour, everyMinute, everySecond, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, 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, onNodeConnected, onNodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setCompId, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntityMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tigase.conf.Configurable
getDefaults, setPropertiesMethods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, release
-
Field Details
-
MY_DOMAIN_NAME_PROP_KEY
- See Also:
-
MY_DOMAIN_NAME_PROP_VAL
- See Also:
-
-
Constructor Details
-
ClusterController
public ClusterController()
-
-
Method Details
-
componentAdded
Description copied from class:AbstractComponentRegistratorMethod provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponentscollection.- Specified by:
componentAddedin classAbstractComponentRegistrator<ClusteredComponentIfc>- Parameters:
component- is a reference to the component just added to the collection.
-
componentRemoved
Description copied from class:AbstractComponentRegistratorMethod provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponentscollection.- Specified by:
componentRemovedin classAbstractComponentRegistrator<ClusteredComponentIfc>- Parameters:
component- is a reference to the component removed from the collection.
-
handleClusterPacket
Description copied from interface:ClusterControllerIfcMethod handles cluster packet received from cluster connection.- Specified by:
handleClusterPacketin interfaceClusterControllerIfc- Parameters:
packet- which should be handled
-
nodeConnected
Description copied from interface:ClusteredComponentIfcMethod is called on cluster node connection event. This is a notification to the component that a new cluster node has connected.- Specified by:
nodeConnectedin interfaceClusterControllerIfc- Specified by:
nodeConnectedin interfaceClusteredComponentIfc- Overrides:
nodeConnectedin classBasicComponent- Parameters:
node- is a hostname of a cluster node generating the event.
-
nodeDisconnected
Description copied from interface:ClusteredComponentIfcMethod is called on cluster node disconnection event. This is a notification to the component that there was network connection lost to one of the cluster nodes.- Specified by:
nodeDisconnectedin interfaceClusterControllerIfc- Specified by:
nodeDisconnectedin interfaceClusteredComponentIfc- Overrides:
nodeDisconnectedin classBasicComponent- Parameters:
node- is a hostname of a cluster node generating the event.
-
processPacket
Description copied from interface:ServerComponentprocessPacketis a blocking processing method implemented by all components. This method processes packet and returns results instantly without waiting for any resources.- Specified by:
processPacketin interfaceServerComponent- Overrides:
processPacketin classBasicComponent- Parameters:
packet- aPacketvalue
-
removeCommandListener
- Specified by:
removeCommandListenerin interfaceClusterControllerIfc
-
sendToNodes
public void sendToNodes(String command, Map<String, String> data, Queue<Element> packets, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commanddata- additional data to be included in the packetpackets- collection of elements to be send to desired nodesfromNode- address of the source nodevisitedNodes- list of all already visited nodestoNodes- list of nodes to which packet should be sent
-
sendToNodes
public void sendToNodes(String command, Queue<Element> packets, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commandpackets- collection of elements to be send to desired nodesfromNode- address of the source nodevisitedNodes- list of all already visited nodestoNodes- list of nodes to which packet should be sent
-
sendToNodes
public void sendToNodes(String command, Map<String, String> data, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commanddata- additional data to be included in the packetfromNode- address of the source nodevisitedNodes- list of all already visited nodestoNodes- list of nodes to which packet should be sent
-
sendToNodes
Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commanddata- additional data to be included in the packetfromNode- address of the source nodetoNodes- list of nodes to which packet should be sent
-
sendToNodes
Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commandfromNode- address of the source nodetoNodes- list of nodes to which packet should be sent
-
sendToNodes
public void sendToNodes(String command, Element packet, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commandpacket- collection of elements to be send to desired nodesfromNode- address of the source nodevisitedNodes- list of all already visited nodestoNodes- list of nodes to which packet should be sent
-
sendToNodes
public void sendToNodes(String command, Map<String, String> data, Element packet, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Description copied from interface:ClusterControllerIfcMethod which sends command to desired nodes- Specified by:
sendToNodesin interfaceClusterControllerIfc- Parameters:
command- ID string of the commanddata- additional data to be included in the packetpacket- element to be send to desired nodesfromNode- address of the source nodevisitedNodes- list of all already visited nodestoNodes- list of nodes to which packet should be sent
-
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
Description copied from class:BasicComponentMethod returns description used for service discovery responses.- Overrides:
getDiscoDescriptionin classBasicComponent- Returns:
- description of a component
-
isCorrectType
Description copied from class:AbstractComponentRegistratorMethod 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 internalcomponentscollection.- Specified by:
isCorrectTypein classAbstractComponentRegistrator<ClusteredComponentIfc>- Parameters:
component- is a reference to the component being checked.- Returns:
- a
booleanvalue oftrueif the component is of a correct type andfalseotherwise.
-
setCommandListener
- Specified by:
setCommandListenerin interfaceClusterControllerIfc
-
setName
Description copied from interface:ServerComponentMethod used to assign component name (localpart of the component)- Specified by:
setNamein interfaceServerComponent- Overrides:
setNamein classBasicComponent- Parameters:
name- to be assigned
-