Я пытаюсь реализовать пользовательский плагин.Я следовал инструкциям в руководстве по 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 не является подтипом