Package de.xima.fc.cluster.impl.jgroup
Class JGroupsCluster
-
- All Implemented Interfaces:
ICluster,Closeable,Serializable,AutoCloseable,ConcurrentMap<String,NodeModel>,Map<String,NodeModel>,org.jgroups.blocks.ReplicatedMap<String,NodeModel>,org.jgroups.Receiver
public class JGroupsCluster extends org.jgroups.blocks.ReplicatedHashMap<String,NodeModel> implements ICluster
Implementation of aIClusterthat usesEClusterImplementation.JGROUPS.- Since:
- 3.1.0
- Author:
- XIMA MEDIA GmbH
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jgroups.blocks.ReplicatedHashMap
org.jgroups.blocks.ReplicatedHashMap.Notification<K extends Object,V extends Object>
-
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>
-
-
Constructor Summary
Constructors Constructor Description JGroupsCluster(org.jgroups.JChannel channel, JGroupsClusterConnection clusterConnection)Creates a new JGroups cluster implementation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidchangeLocaleNodeState(ENodeState state)Changes the state of the local node, i.e.voidclose()voiddisconnect()Disconnects the channel of thisgetLocaleNode().StringgetID()NodeModelgetLocaleNode()String[]getNodeIDs()List<NodeModel>getNodeList()voidsendMessage(IClusterMessage msg)Attempts to send a message to other nodes in the cluster.voidstart()Starts the cluster when not started yet.voidviewAccepted(org.jgroups.View view)-
Methods inherited from class org.jgroups.blocks.ReplicatedHashMap
_clear, _put, _putAll, _putIfAbsent, _remove, _remove, _replace, _replace, addNotifier, clear, containsKey, containsValue, entrySet, get, getChannel, getClusterName, getLocalAddress, getState, getTimeout, init, isBlockingUpdates, put, putAll, putIfAbsent, remove, remove, removeNotifier, replace, replace, setBlockingUpdates, setState, setTimeout, start, stop, synchronizedMap
-
Methods inherited from class java.util.AbstractMap
clone, equals, hashCode, isEmpty, keySet, size, toString, values
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.concurrent.ConcurrentMap
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, replaceAll
-
-
-
-
Constructor Detail
-
JGroupsCluster
public JGroupsCluster(org.jgroups.JChannel channel, JGroupsClusterConnection clusterConnection)Creates a new JGroups cluster implementation.- Parameters:
channel- Channel to use for the local node.clusterConnection- JGroups cluster connection to use.
-
-
Method Detail
-
start
public void start() throws ExceptionStarts the cluster when not started yet.- Throws:
Exception- When the cluster could not be started.
-
viewAccepted
public void viewAccepted(org.jgroups.View view)
-
getID
public String getID()
-
getNodeList
public List<NodeModel> getNodeList()
- Specified by:
getNodeListin interfaceICluster- Returns:
- All nodes that are part of the cluster, whether they are currently connected.
-
getNodeIDs
public String[] getNodeIDs()
- Specified by:
getNodeIDsin interfaceICluster- Returns:
- A list of the IDs of all nodes that are part of the cluster, whether they are currently connected.
-
getLocaleNode
public NodeModel getLocaleNode()
- Specified by:
getLocaleNodein interfaceICluster- Returns:
- The local node, i.e. the node that corresponds to the server running this code.
-
disconnect
public void disconnect()
Disconnects the channel of thisgetLocaleNode().
-
close
public void close()
-
sendMessage
public void sendMessage(IClusterMessage msg) throws Exception
Description copied from interface:IClusterAttempts to send a message to other nodes in the cluster.- Specified by:
sendMessagein interfaceICluster- Parameters:
msg- Message to send to other nodes.- Throws:
Exception- When the message could not be sent, such as due to network failures.
-
changeLocaleNodeState
public void changeLocaleNodeState(ENodeState state)
Description copied from interface:IClusterChanges the state of the local node, i.e. the node that corresponds to the server running this code.- Specified by:
changeLocaleNodeStatein interfaceICluster- Parameters:
state- The new state for the node.
-
-