Package org.apache.ignite.internal.processors.cache.persistence.wal.reader

## Class StandaloneSpiContext

- java.lang.Object
- - org.apache.ignite.internal.processors.cache.persistence.wal.reader.StandaloneSpiContext

All Implemented Interfaces:
  `IgniteSpiContext`

    public class StandaloneSpiContext
    extends Object
    implements IgniteSpiContext

Dummy SPI context for offline utilities.

### Constructor Summary

Constructors
`StandaloneSpiContext()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addLocalEventListener​(GridLocalEventListener lsnr, int... types)` Adds an event listener for local events.
`void` `addLocalMessageListener​(Object topic, IgniteBiPredicate<UUID,​?> p)` Register an local message listener to receive messages sent by remote nodes.
`void` `addMessageListener​(GridMessageListener lsnr, String topic)` Register a message listener to receive messages sent by remote nodes.
`void` `addMetricRegistryCreationListener​(Consumer<ReadOnlyMetricRegistry> lsnr)` Register listener which will be notified on metric registry creation.
`void` `addTimeoutObject​(IgniteSpiTimeoutObject obj)`
`SecuritySubject` `authenticatedSubject​(UUID subjId)` Gets security subject based on subject ID.
`Collection<SecuritySubject>` `authenticatedSubjects()` Gets collection of authenticated subjects together with their permissions.
`boolean` `communicationFailureResolveSupported()`
`<K> boolean` `containsKey​(String cacheName, K key)` Returns `true` if this cache contains a mapping for the specified key.
`void` `deregisterPort​(int port, IgnitePortProtocol proto)` Deregisters closed port.
`void` `deregisterPorts()` Deregisters all closed ports.
`void` `failNode​(UUID nodeId, @Nullable String warning)`
`<K,​V> V` `get​(String cacheName, K key)` Gets object from cache.
`ReadOnlyMetricRegistry` `getOrCreateMetricRegistry​(String name)` Returns existing or newly created instance of metric registry with given name.
`boolean` `isEventRecordable​(int... types)` Checks whether all provided event types are recordable.
`boolean` `isStopping()`
`ClusterNode` `localNode()` Gets local grid node.
`MessageFactory` `messageFactory()` Gets message factory.
`MessageFormatter` `messageFormatter()` Gets message formatter.
`Iterable<ReadOnlyMetricRegistry>` `metricRegistries()` Returns all registered metric registries.
`@Nullable ClusterNode` `node​(UUID nodeId)` Gets a node instance based on its ID.
`Map<String,​Object>` `nodeAttributes()`
`Collection<ClusterNode>` `nodes()` Gets a collection of all grid nodes.
`int` `partition​(String cacheName, Object key)` Calculates partition number for given key.
`boolean` `pingNode​(UUID nodeId)` Pings a remote node.
`<K,​V> V` `put​(String cacheName, K key, V val, long ttl)` Puts object in cache.
`<K,​V> V` `putIfAbsent​(String cacheName, K key, V val, long ttl)` Puts object into cache if there was no previous object associated with given key.
`void` `recordEvent​(Event evt)` Records local event.
`void` `registerPort​(int port, IgnitePortProtocol proto)` Registers open port.
`Collection<ClusterNode>` `remoteNodes()` Gets a collection of remote grid nodes.
`<K,​V> V` `remove​(String cacheName, K key)` Removes object from cache.
`boolean` `removeLocalEventListener​(GridLocalEventListener lsnr)` Removes local event listener.
`void` `removeLocalMessageListener​(Object topic, IgniteBiPredicate<UUID,​?> p)` Removes a previously registered local message listener.
`boolean` `removeMessageListener​(GridMessageListener lsnr, String topic)` Removes a previously registered message listener.
`void` `removeMetricRegistry​(String name)` Removes metric registry with given name.
`void` `removeTimeoutObject​(IgniteSpiTimeoutObject obj)`
`void` `resolveCommunicationFailure​(ClusterNode node, Exception err)`
`void` `send​(ClusterNode node, Serializable msg, String topic)` Sends a message to a remote node.
`boolean` `tryFailNode​(UUID nodeId, @Nullable String warning)`
`@Nullable IgniteNodeValidationResult` `validateNode​(ClusterNode node)` Validates that new node can join grid topology, this method is called on coordinator node before new node joins topology.
`@Nullable IgniteNodeValidationResult` `validateNode​(ClusterNode node, DiscoveryDataBag discoData)`

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

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

### Constructor Detail

#### StandaloneSpiContext

    public StandaloneSpiContext()

### Method Detail

#### addLocalEventListener

    public void addLocalEventListener​(GridLocalEventListener lsnr,
                                      int... types)

Adds an event listener for local events.

Specified by:
  `addLocalEventListener` in interface `IgniteSpiContext`
Parameters:
  `lsnr` - Event listener for local events.
  `types` - Optional types for which this listener will be notified. If no types are provided this listener will be notified for all local events.
See Also:
  `Event`

#### addMessageListener

    public void addMessageListener​(GridMessageListener lsnr,
                                   String topic)

Register a message listener to receive messages sent by remote nodes. The underlying communication mechanism is defined by `CommunicationSpi` implementation used.

This method can be used by jobs to communicate with other nodes in the grid. Remote nodes can send messages by calling `IgniteSpiContext.send(org.apache.ignite.cluster.ClusterNode, Serializable, String)` method.

Specified by:
  `addMessageListener` in interface `IgniteSpiContext`
Parameters:
  `lsnr` - Message listener to register.
  `topic` - Topic to register listener for.

#### addLocalMessageListener

    public void addLocalMessageListener​(Object topic,
                                        IgniteBiPredicate<UUID,​?> p)

Register an local message listener to receive messages sent by remote nodes. The underlying communication mechanism is defined by `CommunicationSpi` implementation used.

Specified by:
  `addLocalMessageListener` in interface `IgniteSpiContext`
Parameters:
  `topic` - Topic to subscribe to.
  `p` - Message predicate.

#### recordEvent

    public void recordEvent​(Event evt)

Records local event.

Specified by:
  `recordEvent` in interface `IgniteSpiContext`
Parameters:
  `evt` - Local grid event to record.

#### registerPort

    public void registerPort​(int port,
                             IgnitePortProtocol proto)

Registers open port.

Specified by:
  `registerPort` in interface `IgniteSpiContext`
Parameters:
  `port` - Port.
  `proto` - Protocol.

#### deregisterPort

    public void deregisterPort​(int port,
                               IgnitePortProtocol proto)

Deregisters closed port.

Specified by:
  `deregisterPort` in interface `IgniteSpiContext`
Parameters:
  `port` - Port.
  `proto` - Protocol.

#### deregisterPorts

    public void deregisterPorts()

Deregisters all closed ports.

Specified by:
  `deregisterPorts` in interface `IgniteSpiContext`

#### get

    public <K,​V> V get​(String cacheName,
                             K key)

Gets object from cache.

Specified by:
  `get` in interface `IgniteSpiContext`
Type Parameters:
  `K` - Key type.
  `V` - Value type.
Parameters:
  `cacheName` - Cache name.
  `key` - Object key.
Returns:
  Cached object.

#### put

    public <K,​V> V put​(String cacheName,
                             K key,
                             V val,
                             long ttl)

Puts object in cache.

Specified by:
  `put` in interface `IgniteSpiContext`
Type Parameters:
  `K` - Key type.
  `V` - Value type.
Parameters:
  `cacheName` - Cache name.
  `key` - Object key.
  `val` - Cached object.
  `ttl` - Time to live, `0` means the entry will never expire.
Returns:
  Previous value associated with specified key, possibly `null`.

#### putIfAbsent

    public <K,​V> V putIfAbsent​(String cacheName,
                                     K key,
                                     V val,
                                     long ttl)

Puts object into cache if there was no previous object associated with given key.

Specified by:
  `putIfAbsent` in interface `IgniteSpiContext`
Type Parameters:
  `K` - Cache key type.
  `V` - Cache value type.
Parameters:
  `cacheName` - Cache name.
  `key` - Cache key.
  `val` - Cache value.
  `ttl` - Time to live.
Returns:
  Either existing value or `null` if there was no value for given key.

#### remove

    public <K,​V> V remove​(String cacheName,
                                K key)

Removes object from cache.

Specified by:
  `remove` in interface `IgniteSpiContext`
Type Parameters:
  `K` - Key type.
  `V` - Value type.
Parameters:
  `cacheName` - Cache name.
  `key` - Object key.
Returns:
  Previous value associated with specified key, possibly `null`.

#### containsKey

    public <K> boolean containsKey​(String cacheName,
                                   K key)

Returns `true` if this cache contains a mapping for the specified key.

Specified by:
  `containsKey` in interface `IgniteSpiContext`
Type Parameters:
  `K` - Key type.
Parameters:
  `cacheName` - Cache name.
  `key` - Object key.
Returns:
  `true` if this cache contains a mapping for the specified key.

#### partition

    public int partition​(String cacheName,
                         Object key)

Calculates partition number for given key.

Specified by:
  `partition` in interface `IgniteSpiContext`
Parameters:
  `cacheName` - Cache name.
  `key` - Key.
Returns:
  Partition.

#### nodes

    public Collection<ClusterNode> nodes()

Gets a collection of all grid nodes. Remote nodes are discovered via underlying `DiscoverySpi` implementation used. Unlike `IgniteSpiContext.remoteNodes()`, this method does include local grid node.

Specified by:
  `nodes` in interface `IgniteSpiContext`
Returns:
  Collection of remote grid nodes.
See Also:
  `IgniteSpiContext.localNode()`, `IgniteSpiContext.remoteNodes()`, `DiscoverySpi`

#### localNode

    public ClusterNode localNode()

Gets local grid node. Instance of local node is provided by underlying `DiscoverySpi` implementation used.

Specified by:
  `localNode` in interface `IgniteSpiContext`
Returns:
  Local grid node.
See Also:
  `DiscoverySpi`

#### node

    @Nullable
    public @Nullable ClusterNode node​(UUID nodeId)

Gets a node instance based on its ID.

Specified by:
  `node` in interface `IgniteSpiContext`
Parameters:
  `nodeId` - ID of a node to get.
Returns:
  Node for a given ID or `null` is such not has not been discovered.
See Also:
  `DiscoverySpi`

#### remoteNodes

    public Collection<ClusterNode> remoteNodes()

Gets a collection of remote grid nodes. Remote nodes are discovered via underlying `DiscoverySpi` implementation used. Unlike `IgniteSpiContext.nodes()`, this method does not include local grid node.

Specified by:
  `remoteNodes` in interface `IgniteSpiContext`
Returns:
  Collection of remote grid nodes.
See Also:
  `IgniteSpiContext.localNode()`, `IgniteSpiContext.nodes()`, `DiscoverySpi`

#### pingNode

    public boolean pingNode​(UUID nodeId)

Pings a remote node. The underlying communication is provided via `DiscoverySpi.pingNode(UUID)` implementation.

Discovery SPIs usually have some latency in discovering failed nodes. Hence, communication to remote nodes may fail at times if an attempt was made to establish communication with a failed node. This method can be used to check if communication has failed due to node failure or due to some other reason.

Specified by:
  `pingNode` in interface `IgniteSpiContext`
Parameters:
  `nodeId` - ID of a node to ping.
Returns:
  `true` if node for a given ID is alive, `false` otherwise.
See Also:
  `DiscoverySpi`

#### removeLocalEventListener

    public boolean removeLocalEventListener​(GridLocalEventListener lsnr)

Removes local event listener.

Specified by:
  `removeLocalEventListener` in interface `IgniteSpiContext`
Parameters:
  `lsnr` - Local event listener to remove.
Returns:
  `true` if listener was removed, `false` otherwise.

#### isEventRecordable

    public boolean isEventRecordable​(int... types)

Checks whether all provided event types are recordable.

Specified by:
  `isEventRecordable` in interface `IgniteSpiContext`
Parameters:
  `types` - Event types to check.
Returns:
  Whether or not all provided event types are recordable..

#### removeLocalMessageListener

    public void removeLocalMessageListener​(Object topic,
                                           IgniteBiPredicate<UUID,​?> p)

Removes a previously registered local message listener.

Specified by:
  `removeLocalMessageListener` in interface `IgniteSpiContext`
Parameters:
  `topic` - Topic to unsubscribe from.
  `p` - Message predicate.

#### removeMessageListener

    public boolean removeMessageListener​(GridMessageListener lsnr,
                                         String topic)

Removes a previously registered message listener.

Specified by:
  `removeMessageListener` in interface `IgniteSpiContext`
Parameters:
  `lsnr` - Message listener to remove.
  `topic` - Topic to unregister listener for.
Returns:
  `true` of message listener was removed, `false` if it was not previously registered.

#### send

    public void send​(ClusterNode node,
                     Serializable msg,
                     String topic)

Sends a message to a remote node. The underlying communication mechanism is defined by `CommunicationSpi` implementation used.

Specified by:
  `send` in interface `IgniteSpiContext`
Parameters:
  `node` - Node to send a message to.
  `msg` - Message to send.
  `topic` - Topic to send message to.

#### validateNode

    @Nullable
    public @Nullable IgniteNodeValidationResult validateNode​(ClusterNode node)

Validates that new node can join grid topology, this method is called on coordinator node before new node joins topology.

Specified by:
  `validateNode` in interface `IgniteSpiContext`
Parameters:
  `node` - Joining node.
Returns:
  Validation result or `null` in case of success.

#### validateNode

    @Nullable
    public @Nullable IgniteNodeValidationResult validateNode​(ClusterNode node,
                                                             DiscoveryDataBag discoData)

Specified by:
  `validateNode` in interface `IgniteSpiContext`
Parameters:
  `node` - Node.
  `discoData` - Disco data.
Returns:
  Validation result or `null` in case of success.

#### authenticatedSubjects

    public Collection<SecuritySubject> authenticatedSubjects()

Gets collection of authenticated subjects together with their permissions.

Specified by:
  `authenticatedSubjects` in interface `IgniteSpiContext`
Returns:
  Collection of authenticated subjects.

#### authenticatedSubject

    public SecuritySubject authenticatedSubject​(UUID subjId)

Gets security subject based on subject ID.

Specified by:
  `authenticatedSubject` in interface `IgniteSpiContext`
Parameters:
  `subjId` - Subject ID.
Returns:
  Authorized security subject.

#### messageFormatter

    public MessageFormatter messageFormatter()

Gets message formatter.

Specified by:
  `messageFormatter` in interface `IgniteSpiContext`
Returns:
  Message formatter.

#### messageFactory

    public MessageFactory messageFactory()

Gets message factory.

Specified by:
  `messageFactory` in interface `IgniteSpiContext`
Returns:
  Message factory.

#### isStopping

    public boolean isStopping()

Specified by:
  `isStopping` in interface `IgniteSpiContext`
Returns:
  `True` if node started shutdown sequence.

#### tryFailNode

    public boolean tryFailNode​(UUID nodeId,
                               @Nullable
                               @Nullable String warning)

Specified by:
  `tryFailNode` in interface `IgniteSpiContext`
Parameters:
  `nodeId` - Node ID.
  `warning` - Warning to be shown on all cluster nodes.
Returns:
  If node was failed.

#### failNode

    public void failNode​(UUID nodeId,
                         @Nullable
                         @Nullable String warning)

Specified by:
  `failNode` in interface `IgniteSpiContext`
Parameters:
  `nodeId` - Node ID.
  `warning` - Warning to be shown on all cluster nodes.

#### addTimeoutObject

    public void addTimeoutObject​(IgniteSpiTimeoutObject obj)

Specified by:
  `addTimeoutObject` in interface `IgniteSpiContext`
Parameters:
  `obj` - Timeout object.

#### removeTimeoutObject

    public void removeTimeoutObject​(IgniteSpiTimeoutObject obj)

Specified by:
  `removeTimeoutObject` in interface `IgniteSpiContext`
Parameters:
  `obj` - Timeout object.

#### nodeAttributes

    public Map<String,​Object> nodeAttributes()

Specified by:
  `nodeAttributes` in interface `IgniteSpiContext`
Returns:
  Current node attributes.

#### communicationFailureResolveSupported

    public boolean communicationFailureResolveSupported()

Specified by:
  `communicationFailureResolveSupported` in interface `IgniteSpiContext`
Returns:
  `True` if cluster supports communication error resolving.

#### resolveCommunicationFailure

    public void resolveCommunicationFailure​(ClusterNode node,
                                            Exception err)

Specified by:
  `resolveCommunicationFailure` in interface `IgniteSpiContext`
Parameters:
  `node` - Problem node.
  `err` - Error.

#### getOrCreateMetricRegistry

    public ReadOnlyMetricRegistry getOrCreateMetricRegistry​(String name)

Returns existing or newly created instance of metric registry with given name.

Specified by:
  `getOrCreateMetricRegistry` in interface `IgniteSpiContext`
Parameters:
  `name` - Metric registry name.
Returns:
  Existing or newly created instance of metric registry.

#### removeMetricRegistry

    public void removeMetricRegistry​(String name)

Removes metric registry with given name.

Specified by:
  `removeMetricRegistry` in interface `IgniteSpiContext`
Parameters:
  `name` - Metric registry name.

#### metricRegistries

    public Iterable<ReadOnlyMetricRegistry> metricRegistries()

Returns all registered metric registries.

Specified by:
  `metricRegistries` in interface `IgniteSpiContext`
Returns:
  All registered metric registries.

#### addMetricRegistryCreationListener

    public void addMetricRegistryCreationListener​(Consumer<ReadOnlyMetricRegistry> lsnr)

Register listener which will be notified on metric registry creation.

Specified by:
  `addMetricRegistryCreationListener` in interface `IgniteSpiContext`
Parameters:
  `lsnr` - Listener.