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
    Modifier and Type | Method and Description
    --- | ---
    `<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)

      Type Parameters:
        `T` - Type of the component to create.
      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)`.
      Type Parameters:
        `T` - Type of the object cache entry be unwrapped to.
        `V` - Cache entry value type.
        `K` - Cache entry key type.
      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.16.0
Release Date | : December 15 2023