Class TeamAppsCluster

java.lang.Object
java.lang.Thread
org.teamapps.cluster.service.TeamAppsCluster
All Implemented Interfaces:
java.lang.Runnable, ClusterNodeMessageHandler, org.teamapps.protocol.file.FileProvider, org.teamapps.protocol.service.ServiceRegistry

public class TeamAppsCluster
extends java.lang.Thread
implements ClusterNodeMessageHandler, org.teamapps.protocol.file.FileProvider, org.teamapps.protocol.service.ServiceRegistry
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Thread

    java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
  • Field Summary

    Fields inherited from class java.lang.Thread

    MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
  • Constructor Summary

    Constructors
    Constructor Description
    TeamAppsCluster​(java.lang.String clusterSecret, int localPort, NodeAddress... knownNodes)  
    TeamAppsCluster​(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, java.io.File tempDir, NodeAddress... knownNodes)  
    TeamAppsCluster​(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, NodeAddress... knownNodes)  
  • Method Summary

    Modifier and Type Method Description
    byte[] createInitMessage()  
    <REQUEST extends org.teamapps.protocol.message.Message,​ RESPONSE extends org.teamapps.protocol.message.Message>
    reactor.core.publisher.Mono<RESPONSE>
    createServiceTask​(java.lang.String serviceName, java.lang.String method, REQUEST request, org.teamapps.protocol.message.MessageDecoder<RESPONSE> responseDecoder)  
    ClusterTopic createTopic​(java.lang.String topicName, java.util.function.Consumer<ClusterTopicMessage> messageConsumer)  
    java.io.File getFile​(java.lang.String fileId)  
    byte[] getKeepAliveMessage()  
    RemoteClusterNode getRandomServiceProvider​(java.lang.String serviceName)  
    void handleMessage​(RemoteClusterNode clusterNode, byte[] bytes)  
    boolean isServiceAvailable​(java.lang.String serviceName)  
    void registerService​(org.teamapps.protocol.service.AbstractClusterService clusterService)  
    void run()  
    void shutDown()  

    Methods inherited from class java.lang.Thread

    activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • TeamAppsCluster

      public TeamAppsCluster​(java.lang.String clusterSecret, int localPort, NodeAddress... knownNodes)
    • TeamAppsCluster

      public TeamAppsCluster​(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, NodeAddress... knownNodes)
    • TeamAppsCluster

      public TeamAppsCluster​(java.lang.String clusterSecret, java.lang.String localNodeId, java.util.function.Consumer<NodeAddress> onNodeConnectionListener, int localPort, java.io.File tempDir, NodeAddress... knownNodes)
  • Method Details

    • createTopic

      public ClusterTopic createTopic​(java.lang.String topicName, java.util.function.Consumer<ClusterTopicMessage> messageConsumer)
    • shutDown

      public void shutDown()
    • registerService

      public void registerService​(org.teamapps.protocol.service.AbstractClusterService clusterService)
      Specified by:
      registerService in interface org.teamapps.protocol.service.ServiceRegistry
    • isServiceAvailable

      public boolean isServiceAvailable​(java.lang.String serviceName)
      Specified by:
      isServiceAvailable in interface org.teamapps.protocol.service.ServiceRegistry
    • getRandomServiceProvider

      public RemoteClusterNode getRandomServiceProvider​(java.lang.String serviceName)
    • run

      public void run()
      Specified by:
      run in interface java.lang.Runnable
      Overrides:
      run in class java.lang.Thread
    • handleMessage

      public void handleMessage​(RemoteClusterNode clusterNode, byte[] bytes)
      Specified by:
      handleMessage in interface ClusterNodeMessageHandler
    • createServiceTask

      public <REQUEST extends org.teamapps.protocol.message.Message,​ RESPONSE extends org.teamapps.protocol.message.Message> reactor.core.publisher.Mono<RESPONSE> createServiceTask​(java.lang.String serviceName, java.lang.String method, REQUEST request, org.teamapps.protocol.message.MessageDecoder<RESPONSE> responseDecoder)
      Specified by:
      createServiceTask in interface org.teamapps.protocol.service.ServiceRegistry
    • createInitMessage

      public byte[] createInitMessage()
      Specified by:
      createInitMessage in interface ClusterNodeMessageHandler
    • getKeepAliveMessage

      public byte[] getKeepAliveMessage()
      Specified by:
      getKeepAliveMessage in interface ClusterNodeMessageHandler
    • getFile

      public java.io.File getFile​(java.lang.String fileId)
      Specified by:
      getFile in interface org.teamapps.protocol.file.FileProvider