Package tigase.cluster
Class ClusterController
- java.lang.Object
-
- tigase.server.BasicComponent
-
- tigase.server.AbstractComponentRegistrator<ClusteredComponentIfc>
-
- tigase.cluster.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- Author:
- Artur Hefczyc
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMY_DOMAIN_NAME_PROP_KEYstatic java.lang.StringMY_DOMAIN_NAME_PROP_VAL-
Fields inherited from class tigase.server.AbstractComponentRegistrator
components
-
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.cluster.api.ClusterControllerIfc
DELIVER_CLUSTER_PACKET_CMD
-
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 ClusterController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomponentAdded(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.java.lang.StringgetDiscoCategoryType()Method returns component category type used for service discovery responses.java.lang.StringgetDiscoDescription()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(java.lang.String node)Method is called on cluster node connection event.voidnodeDisconnected(java.lang.String node)Method is called on cluster node disconnection event.voidprocessPacket(Packet packet, java.util.Queue<Packet> results)processPacketis a blocking processing method implemented by all components.voidremoveCommandListener(CommandListener listener)voidsendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, java.util.Queue<Element> packets, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)Method which sends command to desired nodesvoidsendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, Element packet, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)Method which sends command to desired nodesvoidsendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)Method which sends command to desired nodesvoidsendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, JID fromNode, JID... toNodes)Method which sends command to desired nodesvoidsendToNodes(java.lang.String command, java.util.Queue<Element> packets, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)Method which sends command to desired nodesvoidsendToNodes(java.lang.String command, Element packet, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)Method which sends command to desired nodesvoidsendToNodes(java.lang.String command, JID fromNode, JID... toNodes)Method which sends command to desired nodesvoidsetCommandListener(CommandListener listener)voidsetName(java.lang.String name)Method used to assign component name (localpart of the component)-
Methods inherited from class tigase.server.AbstractComponentRegistrator
addComponent, deleteComponent, getComponent, newPacketId, release
-
Methods 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, updateServiceEntity
-
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
getDefaults, setProperties
-
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, getName, initializationCompleted, isInitializationComplete, release
-
-
-
-
Field Detail
-
MY_DOMAIN_NAME_PROP_KEY
public static final java.lang.String MY_DOMAIN_NAME_PROP_KEY
- See Also:
- Constant Field Values
-
MY_DOMAIN_NAME_PROP_VAL
public static final java.lang.String MY_DOMAIN_NAME_PROP_VAL
- See Also:
- Constant Field Values
-
-
Method Detail
-
componentAdded
public void componentAdded(ClusteredComponentIfc component)
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
public void componentRemoved(ClusteredComponentIfc component)
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
public void handleClusterPacket(Element packet)
Description copied from interface:ClusterControllerIfcMethod handles cluster packet received from cluster connection.- Specified by:
handleClusterPacketin interfaceClusterControllerIfc- Parameters:
packet- which should be handled
-
nodeConnected
public void nodeConnected(java.lang.String node)
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
public void nodeDisconnected(java.lang.String node)
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
public void processPacket(Packet packet, java.util.Queue<Packet> results)
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
public void removeCommandListener(CommandListener listener)
- Specified by:
removeCommandListenerin interfaceClusterControllerIfc
-
sendToNodes
public void sendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, java.util.Queue<Element> packets, JID fromNode, java.util.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(java.lang.String command, java.util.Queue<Element> packets, JID fromNode, java.util.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(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, JID fromNode, java.util.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
public void sendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, JID fromNode, 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 nodetoNodes- list of nodes to which packet should be sent
-
sendToNodes
public void sendToNodes(java.lang.String command, JID fromNode, JID... toNodes)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(java.lang.String command, Element packet, JID fromNode, java.util.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(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, Element packet, JID fromNode, java.util.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
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
-
isCorrectType
public boolean isCorrectType(ServerComponent component)
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
public void setCommandListener(CommandListener listener)
- Specified by:
setCommandListenerin interfaceClusterControllerIfc
-
setName
public void setName(java.lang.String name)
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
-
-