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
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
componentAdded
(ClusteredComponentIfc component) Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponents
collection.void
componentRemoved
(ClusteredComponentIfc component) Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponents
collection.Method returns component category type used for service discovery responses.Method returns description used for service discovery responses.void
handleClusterPacket
(Element packet) Method handles cluster packet received from cluster connection.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.void
nodeConnected
(String node) Method is called on cluster node connection event.void
nodeDisconnected
(String node) Method is called on cluster node disconnection event.void
processPacket
(Packet packet, Queue<Packet> results) processPacket
is a blocking processing method implemented by all components.void
removeCommandListener
(CommandListener listener) void
sendToNodes
(String command, Map<String, String> data, Queue<Element> packets, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoid
sendToNodes
(String command, Map<String, String> data, Element packet, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoid
sendToNodes
(String command, Map<String, String> data, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoid
Method which sends command to desired nodesvoid
sendToNodes
(String command, Queue<Element> packets, JID fromNode, Set<JID> visitedNodes, JID... toNodes) Method which sends command to desired nodesvoid
Method which sends command to desired nodesvoid
sendToNodes
(String command, JID fromNode, JID... toNodes) Method which sends command to desired nodesvoid
setCommandListener
(CommandListener listener) void
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 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:AbstractComponentRegistrator
Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponents
collection.- Specified by:
componentAdded
in classAbstractComponentRegistrator<ClusteredComponentIfc>
- Parameters:
component
- is a reference to the component just added to the collection.
-
componentRemoved
Description copied from class:AbstractComponentRegistrator
Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponents
collection.- Specified by:
componentRemoved
in classAbstractComponentRegistrator<ClusteredComponentIfc>
- Parameters:
component
- is a reference to the component removed from the collection.
-
handleClusterPacket
Description copied from interface:ClusterControllerIfc
Method handles cluster packet received from cluster connection.- Specified by:
handleClusterPacket
in interfaceClusterControllerIfc
- Parameters:
packet
- which should be handled
-
nodeConnected
Description copied from interface:ClusteredComponentIfc
Method is called on cluster node connection event. This is a notification to the component that a new cluster node has connected.- Specified by:
nodeConnected
in interfaceClusterControllerIfc
- Specified by:
nodeConnected
in interfaceClusteredComponentIfc
- Overrides:
nodeConnected
in classBasicComponent
- Parameters:
node
- is a hostname of a cluster node generating the event.
-
nodeDisconnected
Description copied from interface:ClusteredComponentIfc
Method 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:
nodeDisconnected
in interfaceClusterControllerIfc
- Specified by:
nodeDisconnected
in interfaceClusteredComponentIfc
- Overrides:
nodeDisconnected
in classBasicComponent
- Parameters:
node
- is a hostname of a cluster node generating the event.
-
processPacket
Description copied from interface:ServerComponent
processPacket
is a blocking processing method implemented by all components. This method processes packet and returns results instantly without waiting for any resources.- Specified by:
processPacket
in interfaceServerComponent
- Overrides:
processPacket
in classBasicComponent
- Parameters:
packet
- aPacket
value
-
removeCommandListener
- Specified by:
removeCommandListener
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:ClusterControllerIfc
Method which sends command to desired nodes- Specified by:
sendToNodes
in 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:BasicComponent
Method returns component category type used for service discovery responses.- Overrides:
getDiscoCategoryType
in classBasicComponent
- Returns:
- category type of a component
-
getDiscoDescription
Description copied from class:BasicComponent
Method returns description used for service discovery responses.- Overrides:
getDiscoDescription
in classBasicComponent
- Returns:
- description of a component
-
isCorrectType
Description copied from class:AbstractComponentRegistrator
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.- Specified by:
isCorrectType
in classAbstractComponentRegistrator<ClusteredComponentIfc>
- 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.
-
setCommandListener
- Specified by:
setCommandListener
in interfaceClusterControllerIfc
-
setName
Description copied from interface:ServerComponent
Method used to assign component name (localpart of the component)- Specified by:
setName
in interfaceServerComponent
- Overrides:
setName
in classBasicComponent
- Parameters:
name
- to be assigned
-