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.String
MY_DOMAIN_NAME_PROP_KEY
static java.lang.String
MY_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 void
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.java.lang.String
getDiscoCategoryType()
Method returns component category type used for service discovery responses.java.lang.String
getDiscoDescription()
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(java.lang.String node)
Method is called on cluster node connection event.void
nodeDisconnected(java.lang.String node)
Method is called on cluster node disconnection event.void
processPacket(Packet packet, java.util.Queue<Packet> results)
processPacket
is a blocking processing method implemented by all components.void
removeCommandListener(CommandListener listener)
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)
Method which sends command to desired nodesvoid
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)
Method which sends command to desired nodesvoid
sendToNodes(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 nodesvoid
sendToNodes(java.lang.String command, java.util.Map<java.lang.String,java.lang.String> data, JID fromNode, JID... toNodes)
Method which sends command to desired nodesvoid
sendToNodes(java.lang.String command, java.util.Queue<Element> packets, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)
Method which sends command to desired nodesvoid
sendToNodes(java.lang.String command, Element packet, JID fromNode, java.util.Set<JID> visitedNodes, JID... toNodes)
Method which sends command to desired nodesvoid
sendToNodes(java.lang.String command, JID fromNode, JID... toNodes)
Method which sends command to desired nodesvoid
setCommandListener(CommandListener listener)
void
setName(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: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
public void componentRemoved(ClusteredComponentIfc component)
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
public void handleClusterPacket(Element packet)
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
public void nodeConnected(java.lang.String node)
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
public void nodeDisconnected(java.lang.String node)
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
public void processPacket(Packet packet, java.util.Queue<Packet> results)
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
public void removeCommandListener(CommandListener listener)
- Specified by:
removeCommandListener
in 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: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(java.lang.String command, java.util.Queue<Element> packets, JID fromNode, java.util.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(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: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
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: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
public void sendToNodes(java.lang.String command, JID fromNode, 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 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: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(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: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
public java.lang.String 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
public java.lang.String getDiscoDescription()
Description copied from class:BasicComponent
Method returns description used for service discovery responses.- Overrides:
getDiscoDescription
in classBasicComponent
- Returns:
- description of a component
-
isCorrectType
public boolean isCorrectType(ServerComponent component)
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
public void setCommandListener(CommandListener listener)
- Specified by:
setCommandListener
in interfaceClusterControllerIfc
-
setName
public void setName(java.lang.String name)
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
-
-