Package org.teamapps.cluster.core
Class ClusterImpl
java.lang.Object
org.teamapps.cluster.core.ClusterImpl
- All Implemented Interfaces:
Cluster,ClusterHandler,org.teamapps.protocol.schema.ClusterServiceRegistry
public class ClusterImpl extends java.lang.Object implements Cluster, ClusterHandler
-
Constructor Summary
Constructors Constructor Description ClusterImpl(java.lang.String clusterSecret, java.io.File tempDir, java.lang.String nodeId, HostAddress externalAddress, HostAddress bindToAddress, boolean leader, HostAddress... knownNodes)ClusterImpl(java.lang.String clusterSecret, java.lang.String nodeId, boolean leader, HostAddress... knownNodes)ClusterImpl(java.lang.String clusterSecret, java.lang.String nodeId, HostAddress externalAddress, boolean leader, HostAddress... knownNodes)ClusterImpl(java.lang.String clusterSecret, java.lang.String nodeId, HostAddress externalAddress, HostAddress bindToAddress, boolean leader, HostAddress... knownNodes) -
Method Summary
Modifier and Type Method Description voidaddModelCollection(org.teamapps.protocol.schema.ModelCollection modelCollection)voidaddRemoteNode(RemoteNode remoteNode)voidblock()<REQUEST extends org.teamapps.protocol.schema.MessageObject, RESPONSE extends org.teamapps.protocol.schema.MessageObject>
RESPONSEexecuteServiceMethod(java.lang.String serviceName, java.lang.String method, REQUEST request, org.teamapps.protocol.schema.PojoObjectDecoder<RESPONSE> responseDecoder)ClusterInfogetClusterInfo()LocalNodegetLocalNode()RemoteNodegetRandomServiceProvider(java.lang.String serviceName)RemoteNodegetRemoteNode(java.lang.String nodeId)java.util.List<RemoteNode>getRemoteNodes()org.teamapps.protocol.schema.MessageObjecthandleClusterServiceMethod(java.lang.String service, java.lang.String serviceMethod, org.teamapps.protocol.schema.MessageObject requestData)voidhandleClusterUpdate()voidhandleMessage(org.teamapps.protocol.schema.MessageObject message, RemoteNode node)voidhandleNodeConnected(RemoteNode node, ClusterInfo clusterInfo)voidhandleNodeDisconnected(RemoteNode node)voidhandleTopicMessage(java.lang.String topic, org.teamapps.protocol.schema.MessageObject message, RemoteNode node)booleanisServiceAvailable(java.lang.String serviceName)<MESSAGE extends org.teamapps.protocol.schema.MessageObject>
voidregisterMessageHandler(MessageHandler<MESSAGE> messageHandler, org.teamapps.protocol.schema.PojoObjectDecoder<MESSAGE> messageDecoder)voidregisterService(org.teamapps.protocol.schema.AbstractClusterService clusterService)<MESSAGE extends org.teamapps.protocol.schema.MessageObject>
voidregisterTopicHandler(java.lang.String topic, MessageHandler<MESSAGE> messageHandler, org.teamapps.protocol.schema.PojoObjectDecoder<MESSAGE> messageDecoder)voidsendMessage(org.teamapps.protocol.schema.MessageObject message, java.lang.String nodeId)voidsendTopicMessage(java.lang.String topic, org.teamapps.protocol.schema.MessageObject message)voidshutDown()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
ClusterImpl
public ClusterImpl(java.lang.String clusterSecret, java.lang.String nodeId, boolean leader, HostAddress... knownNodes) throws java.io.IOException- Throws:
java.io.IOException
-
ClusterImpl
public ClusterImpl(java.lang.String clusterSecret, java.lang.String nodeId, HostAddress externalAddress, boolean leader, HostAddress... knownNodes) throws java.io.IOException- Throws:
java.io.IOException
-
ClusterImpl
public ClusterImpl(java.lang.String clusterSecret, java.lang.String nodeId, HostAddress externalAddress, HostAddress bindToAddress, boolean leader, HostAddress... knownNodes) throws java.io.IOException- Throws:
java.io.IOException
-
ClusterImpl
public ClusterImpl(java.lang.String clusterSecret, java.io.File tempDir, java.lang.String nodeId, HostAddress externalAddress, HostAddress bindToAddress, boolean leader, HostAddress... knownNodes)
-
-
Method Details
-
block
public void block() -
getClusterInfo
- Specified by:
getClusterInfoin interfaceClusterHandler
-
handleNodeConnected
- Specified by:
handleNodeConnectedin interfaceClusterHandler
-
handleNodeDisconnected
- Specified by:
handleNodeDisconnectedin interfaceClusterHandler
-
handleClusterUpdate
public void handleClusterUpdate()- Specified by:
handleClusterUpdatein interfaceClusterHandler
-
addModelCollection
public void addModelCollection(org.teamapps.protocol.schema.ModelCollection modelCollection)- Specified by:
addModelCollectionin interfaceCluster
-
getLocalNode
- Specified by:
getLocalNodein interfaceCluster
-
getRemoteNodes
- Specified by:
getRemoteNodesin interfaceCluster
-
addRemoteNode
- Specified by:
addRemoteNodein interfaceCluster
-
getRemoteNode
- Specified by:
getRemoteNodein interfaceCluster
-
registerService
public void registerService(org.teamapps.protocol.schema.AbstractClusterService clusterService)- Specified by:
registerServicein interfaceorg.teamapps.protocol.schema.ClusterServiceRegistry
-
isServiceAvailable
public boolean isServiceAvailable(java.lang.String serviceName)- Specified by:
isServiceAvailablein interfaceCluster- Specified by:
isServiceAvailablein interfaceorg.teamapps.protocol.schema.ClusterServiceRegistry
-
getRandomServiceProvider
-
executeServiceMethod
public <REQUEST extends org.teamapps.protocol.schema.MessageObject, RESPONSE extends org.teamapps.protocol.schema.MessageObject> RESPONSE executeServiceMethod(java.lang.String serviceName, java.lang.String method, REQUEST request, org.teamapps.protocol.schema.PojoObjectDecoder<RESPONSE> responseDecoder)- Specified by:
executeServiceMethodin interfaceorg.teamapps.protocol.schema.ClusterServiceRegistry
-
sendMessage
public void sendMessage(org.teamapps.protocol.schema.MessageObject message, java.lang.String nodeId)- Specified by:
sendMessagein interfaceCluster
-
sendTopicMessage
public void sendTopicMessage(java.lang.String topic, org.teamapps.protocol.schema.MessageObject message)- Specified by:
sendTopicMessagein interfaceCluster
-
handleMessage
- Specified by:
handleMessagein interfaceClusterHandler
-
handleTopicMessage
public void handleTopicMessage(java.lang.String topic, org.teamapps.protocol.schema.MessageObject message, RemoteNode node)- Specified by:
handleTopicMessagein interfaceClusterHandler
-
registerMessageHandler
public <MESSAGE extends org.teamapps.protocol.schema.MessageObject> void registerMessageHandler(MessageHandler<MESSAGE> messageHandler, org.teamapps.protocol.schema.PojoObjectDecoder<MESSAGE> messageDecoder)- Specified by:
registerMessageHandlerin interfaceCluster
-
registerTopicHandler
public <MESSAGE extends org.teamapps.protocol.schema.MessageObject> void registerTopicHandler(java.lang.String topic, MessageHandler<MESSAGE> messageHandler, org.teamapps.protocol.schema.PojoObjectDecoder<MESSAGE> messageDecoder)- Specified by:
registerTopicHandlerin interfaceCluster
-
handleClusterServiceMethod
public org.teamapps.protocol.schema.MessageObject handleClusterServiceMethod(java.lang.String service, java.lang.String serviceMethod, org.teamapps.protocol.schema.MessageObject requestData)- Specified by:
handleClusterServiceMethodin interfaceClusterHandler
-
shutDown
public void shutDown()
-