Plugins

Extending Ignite features with custom plugins.

❗️

This is a legacy Apache Ignite documentation

The new documentation is hosted here: https://ignite.apache.org/docs/latest/

Overview

Ignite plugin system allows third parties to extend the core functionality of Ignite.

To add a custom plugin, implement the PluginProvider interface and register the implementation either via IgniteConfiguration.setPluginProviders() or service loader.

Plugin Provider

PluginProvider<PluginConfiguration> implementation is the work-horse of the newly added plugin. It creates the plugin on node start-up. This interface has lots of methods that can be implemented or left empty based on user needs. However, name() and plugin() methods must not be null.

public class MyPluginProvider implements PluginProvider<PluginConfiguration> {
    @Override
    public String name() {
        return "IGNITE";
    }

    @Override
    public <T extends IgnitePlugin> T plugin() {
        return (T)new MyPlugin();
    }

    @Nullable
    @Override
    public <T> T createComponent(PluginContext pluginContext, Class<T> aClass) {
        return null;
    }

    // Other methods can be no-op
}

The three important methods of the PluginProvider<PluginConfiguration> interface are:

  • name() - name of the plugin.
  • plugin() - creates the plugin.
  • createComponent() - This method allows creating components already known by Ignite, such as - data snapshots, grid security, node discovery, and cross-platform support for 3rd party Java APIs.

Load Plugin Provider

Ignite plugins are loaded using the ServiceLoader class of JDK. For the plugin provider to be loaded, create a file with the name org.apache.ignite.plugin.PluginProvider in the META_INF folder,

371

and provide the name of the plugin provider implementation in that file.

311
📘

Ignite.NET plugin

See https://apacheignite-net.readme.io/docs/plugins for Ignite.NET plugin documentation.