Package io.vertx.ext.cluster.infinispan

## Class InfinispanClusterManager

- java.lang.Object
- - io.vertx.ext.cluster.infinispan.InfinispanClusterManager

- All Implemented Interfaces:
    `ClusteredNode`, `ClusterManager`, `VertxServiceProvider`

      public class InfinispanClusterManager
      extends Object
      implements ClusterManager

  Author:
    Thomas Segismont

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `InfinispanClusterManager()` | Creates a new cluster manager configured with `infinispan.xml` and `jgroups.xml` files.
    `InfinispanClusterManager​(org.infinispan.manager.DefaultCacheManager cacheManager)` | Creates a new cluster manager with an existing `DefaultCacheManager`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addRegistration​(String address, RegistrationInfo registrationInfo, Completable<Void> promise)` | Share a new messaging handler registration with other nodes in the cluster.
    `String` | `clusterHost()` | If the cluster manager has its own server for data/membership, this returns the host it is listening to.
    `String` | `clusterPublicHost()` | If the cluster manager has its own server for data/membership, this returns the host it advertises to other nodes.
    `<K,​V> void` | `getAsyncMap​(String name, Completable<AsyncMap<K,​V>> promise)` | Return an `AsyncMap` for the given `name`.
    `org.infinispan.commons.api.BasicCacheContainer` | `getCacheContainer()` |
    `void` | `getCounter​(String name, Completable<Counter> promise)` | Return a `Counter` for the given `name`.
    `void` | `getLockWithTimeout​(String name, long timeout, Completable<Lock> prom)` | Attempts to acquire a `Lock` for the given `name` within `timeout` milliseconds.
    `String` | `getNodeId()` | Return the unique node identifier for this node.
    `NodeInfo` | `getNodeInfo()` | Get details about this clustered node.
    `void` | `getNodeInfo​(String nodeId, Completable<NodeInfo> promise)` | Get details about a specific node in the cluster.
    `List<String>` | `getNodes()` | Return a list of node identifiers corresponding to the nodes in the cluster.
    `void` | `getRegistrations​(String address, Completable<List<RegistrationInfo>> promise)` | Get the messaging handler currently registered in the cluster.
    `<K,​V> Map<K,​V>` | `getSyncMap​(String name)` | Return a synchronous map for the given `name`.
    `void` | `init​(Vertx vertx)` | Invoked before this cluster node tries to join the cluster.
    `boolean` | `isActive()` | Is the cluster manager active?
    `void` | `join​(Completable<Void> promise)` | Join the cluster.
    `void` | `leave​(Completable<Void> promise)` | Leave the cluster.
    `void` | `nodeListener​(NodeListener nodeListener)` | Set a listener that will be called when a node joins or leaves the cluster.
    `void` | `registrationListener​(RegistrationListener registrationListener)` | Implementations must signal the provided `registrationListener` when messaging handler registrations are added or removed by sending a `RegistrationUpdateEvent` with `RegistrationListener.registrationsUpdated(RegistrationUpdateEvent)`.
    `void` | `removeRegistration​(String address, RegistrationInfo registrationInfo, Completable<Void> promise)` | Signal removal of a messaging handler registration to other nodes in the cluster.
    `void` | `setNodeInfo​(NodeInfo nodeInfo, Completable<Void> promise)` | Store the details about this clustered node.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface io.vertx.core.spi.cluster.ClusterManager

      `init`

- - ### Constructor Detail

    - #### InfinispanClusterManager

          public InfinispanClusterManager()

      Creates a new cluster manager configured with `infinispan.xml` and `jgroups.xml` files.

    - #### InfinispanClusterManager

          public InfinispanClusterManager​(org.infinispan.manager.DefaultCacheManager cacheManager)

      Creates a new cluster manager with an existing `DefaultCacheManager`. It is your responsibility to start/stop the cache manager when the Vert.x instance joins/leaves the cluster.
      Parameters:
        `cacheManager` - the existing cache manager

  - ### Method Detail

    - #### init

          public void init​(Vertx vertx)

      Description copied from interface: `ClusterManager`
      Invoked before this cluster node tries to join the cluster.
      Specified by:
        `init` in interface `ClusterManager`
      Parameters:
        `vertx` - the Vert.x instance

    - #### getCacheContainer

          public org.infinispan.commons.api.BasicCacheContainer getCacheContainer()

    - #### getAsyncMap

          public <K,​V> void getAsyncMap​(String name,
                                              Completable<AsyncMap<K,​V>> promise)

      Description copied from interface: `ClusterManager`
      Return an `AsyncMap` for the given `name`.
      Specified by:
        `getAsyncMap` in interface `ClusterManager`

    - #### getSyncMap

          public <K,​V> Map<K,​V> getSyncMap​(String name)

      Description copied from interface: `ClusterManager`
      Return a synchronous map for the given `name`.
      Specified by:
        `getSyncMap` in interface `ClusterManager`

    - #### getLockWithTimeout

          public void getLockWithTimeout​(String name,
                                         long timeout,
                                         Completable<Lock> prom)

      Description copied from interface: `ClusterManager`
      Attempts to acquire a `Lock` for the given `name` within `timeout` milliseconds.
      Specified by:
        `getLockWithTimeout` in interface `ClusterManager`

    - #### getCounter

          public void getCounter​(String name,
                                 Completable<Counter> promise)

      Description copied from interface: `ClusterManager`
      Return a `Counter` for the given `name`.
      Specified by:
        `getCounter` in interface `ClusterManager`

    - #### getNodeId

          public String getNodeId()

      Description copied from interface: `ClusteredNode`
      Return the unique node identifier for this node.
      Specified by:
        `getNodeId` in interface `ClusteredNode`

    - #### getNodes

          public List<String> getNodes()

      Description copied from interface: `ClusteredNode`
      Return a list of node identifiers corresponding to the nodes in the cluster.
      Specified by:
        `getNodes` in interface `ClusteredNode`

    - #### registrationListener

          public void registrationListener​(RegistrationListener registrationListener)

      Description copied from interface: `ClusterManager`
      Implementations must signal the provided `registrationListener` when messaging handler registrations are added or removed by sending a `RegistrationUpdateEvent` with `RegistrationListener.registrationsUpdated(RegistrationUpdateEvent)`.
      Specified by:
        `registrationListener` in interface `ClusterManager`
      Parameters:
        `registrationListener` - the registration listener

    - #### nodeListener

          public void nodeListener​(NodeListener nodeListener)

      Description copied from interface: `ClusterManager`
      Set a listener that will be called when a node joins or leaves the cluster.
      Specified by:
        `nodeListener` in interface `ClusterManager`

    - #### setNodeInfo

          public void setNodeInfo​(NodeInfo nodeInfo,
                                  Completable<Void> promise)

      Description copied from interface: `ClusterManager`
      Store the details about this clustered node.
      Specified by:
        `setNodeInfo` in interface `ClusterManager`

    - #### getNodeInfo

          public NodeInfo getNodeInfo()

      Description copied from interface: `ClusteredNode`
      Get details about this clustered node.
      Specified by:
        `getNodeInfo` in interface `ClusteredNode`

    - #### getNodeInfo

          public void getNodeInfo​(String nodeId,
                                  Completable<NodeInfo> promise)

      Description copied from interface: `ClusteredNode`
      Get details about a specific node in the cluster.
      Specified by:
        `getNodeInfo` in interface `ClusteredNode`
      Parameters:
        `nodeId` - the clustered node id

    - #### join

          public void join​(Completable<Void> promise)

      Description copied from interface: `ClusterManager`
      Join the cluster.
      Specified by:
        `join` in interface `ClusterManager`

    - #### leave

          public void leave​(Completable<Void> promise)

      Description copied from interface: `ClusterManager`
      Leave the cluster.
      Specified by:
        `leave` in interface `ClusterManager`

    - #### isActive

          public boolean isActive()

      Description copied from interface: `ClusterManager`
      Is the cluster manager active?
      Specified by:
        `isActive` in interface `ClusterManager`
      Returns:
        true if active, false otherwise

    - #### addRegistration

          public void addRegistration​(String address,
                                      RegistrationInfo registrationInfo,
                                      Completable<Void> promise)

      Description copied from interface: `ClusterManager`
      Share a new messaging handler registration with other nodes in the cluster.
      Specified by:
        `addRegistration` in interface `ClusterManager`

    - #### removeRegistration

          public void removeRegistration​(String address,
                                         RegistrationInfo registrationInfo,
                                         Completable<Void> promise)

      Description copied from interface: `ClusterManager`
      Signal removal of a messaging handler registration to other nodes in the cluster.
      Specified by:
        `removeRegistration` in interface `ClusterManager`

    - #### getRegistrations

          public void getRegistrations​(String address,
                                       Completable<List<RegistrationInfo>> promise)

      Description copied from interface: `ClusteredNode`
      Get the messaging handler currently registered in the cluster.
      Specified by:
        `getRegistrations` in interface `ClusteredNode`

    - #### clusterHost

          public String clusterHost()

      Description copied from interface: `ClusterManager`
      If the cluster manager has its own server for data/membership, this returns the host it is listening to. When users don't configure the eventbus cluster host, the value will serve as a default.
      Specified by:
        `clusterHost` in interface `ClusterManager`
      Returns:
        null if the cluster manager does not start a server or the host couldn't be determined

    - #### clusterPublicHost

          public String clusterPublicHost()

      Description copied from interface: `ClusterManager`
      If the cluster manager has its own server for data/membership, this returns the host it advertises to other nodes. When users don't configure the eventbus cluster public host, the value will serve as a default.
      Specified by:
        `clusterPublicHost` in interface `ClusterManager`
      Returns:
        null if the cluster manager does not advertise a host that is different from the cluster host or the public host couldn't be determined