Реализация плагина Apache Ignite 2.5 - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь реализовать пользовательский плагин.Я следовал инструкциям в руководстве по Ignite и добавил свойство в файл конфигурации default-config.xml:

 <property name="pluginConfigurations">
          <bean class="com.plugins.SecurityPluginConfiguration"/>
</property>

Затем я реализовал «SecurityPluginConfiguration»:

public class SecurityPluginConfiguration implements PluginConfiguration {

    public Class<? extends PluginProvider> providerClass() {
        return SecurityPluginProvider.class;
    }       
}

и «SecurityPluginProvider»:

public class SecurityPluginProvider  implements PluginProvider<SecurityPluginConfiguration>{


    @Override
    public String name() {
        System.out.println("%%%% Plugin Name : WhiteListSecurity %%%%%%");
        return "WhiteListSecurity";
    }

    @Override
    public String version() {
        return "1.0.0";
    }

    @Override
    public void start(PluginContext arg0) throws IgniteCheckedException {
        // TODO Auto-generated method stub
        System.out.println(" %%%%%%  Starting Security Plugin Provider %%%%%%% ");

    }

     @Nullable
     @Override
     public Object createComponent(PluginContext ctx, Class cls) {

         System.out.println(" %%%%%%  Create Component HERE!!! %%%%%%% ");
            if (cls.isAssignableFrom(GridSecurityProcessor.class)) {
                return new WhiteListSecurityProcessor();
            } else {
                return null;
            } 
     }
.....

// other methods
}

Когда я запускаю Ignite Node, я не вижу в файле журнала ничего, что я пытаюсь распечатать.Похоже, что методы start () или onIgniteStart () не вызываются.

Я добавил файл org.apache.ignite.plugin.PluginProvider в каталог META-INF, и он содержит com.plugins.SecurityPluginConfiguration

Я что-то пропустил?Есть ли какой-либо четкий пример реализации плагина?

Проблема была частично решена путем размещения файла «org.apache.ignite.plugin.PluginProvider» в каталоге «resources / META-INF / services».

Теперь при запуске я получаю эту ошибку:

Не удалось запустить grid: java.util.ServiceConfigurationError: org.apache.ignite.plugin.PluginProvider: Поставщик com.plugins.SecurityPluginConfiguration не является подтипом

...