org.apache.ignite.plugin

## Interface CachePluginProvider<C extends CachePluginConfiguration>

    public interface CachePluginProvider<C extends CachePluginConfiguration>

Cache plugin provider is a point for processing of properties which provide specific `CachePluginConfiguration`.

### Method Summary

All Methods Instance Methods Abstract Methods
`<T> T` `createComponent(Class<T> cls)`
`void` `onIgniteStart()` Callback that notifies that Ignite has successfully started, including all internal components.
`void` `onIgniteStop(boolean cancel)` Callback to notify that Ignite is about to stop.
`void` `start()` Starts grid component.
`void` `stop(boolean cancel)` Stops grid component.
`<T,K,V> T` `unwrapCacheEntry(javax.cache.Cache.Entry<K,V> entry, Class<T> cls)` Unwrap entry to specified type.
`void` `validate()` Validates cache plugin configuration in process of cache creation.
`void` `validateRemote(CacheConfiguration locCfg, CacheConfiguration rmtCfg, ClusterNode rmtNode)` Checks that remote caches has configuration compatible with the local.

### Method Detail

#### start

    void start()
        throws IgniteCheckedException

Starts grid component.

Throws:
  `IgniteCheckedException` - Throws in case of any errors.

#### stop

    void stop(boolean cancel)

Stops grid component.

Parameters:
  `cancel` - If `true`, then all ongoing tasks or jobs for relevant components need to be cancelled.

#### onIgniteStart

    void onIgniteStart()
                throws IgniteCheckedException

Callback that notifies that Ignite has successfully started, including all internal components.

Throws:
  `IgniteCheckedException` - Thrown in case of any errors.

#### onIgniteStop

    void onIgniteStop(boolean cancel)

Callback to notify that Ignite is about to stop.

Parameters:
  `cancel` - Flag indicating whether jobs should be canceled.

#### createComponent

    @Nullable
    <T> T createComponent(Class<T> cls)

Parameters:
  `cls` - Ignite component class.
Returns:
  Ignite component or `null` if component is not supported.

#### unwrapCacheEntry

    @Nullable
    <T,K,V> T unwrapCacheEntry(javax.cache.Cache.Entry<K,V> entry,
                                         Class<T> cls)

Unwrap entry to specified type. For details see `javax.cache.Cache.Entry.unwrap(Class)`.

Parameters:
  `entry` - Mutable entry to unwrap.
  `cls` - Type of the expected component.
Returns:
  New instance of underlying type or `null` if it's not available.

#### validate

    void validate()
           throws IgniteCheckedException

Validates cache plugin configuration in process of cache creation. Throw exception if validation failed.

Throws:
  `IgniteCheckedException` - If validation failed.

#### validateRemote

    void validateRemote(CacheConfiguration locCfg,
                        CacheConfiguration rmtCfg,
                        ClusterNode rmtNode)
                 throws IgniteCheckedException

Checks that remote caches has configuration compatible with the local.

Parameters:
  `locCfg` - Local configuration.
  `rmtCfg` - Remote configuration.
  `rmtNode` - Remote node.
Throws:
  `IgniteCheckedException`

${current.year} Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Database and Caching Platform | : ver. 2.7.6
Release Date | : September 11 2019