Как использовать класс Java ServiceLoader в Grails?
Я использовал механизм SPI JDK во многих других приложениях без каких-либо проблем; однако, я не могу заставить его работать в Grails.
Я пробовал обычный код (показанный ниже) как из статического инициализатора, так и из конструктора класса, но ни один из них не работал.
ServiceLoader loader = ServiceLoader.load(QueryEngine.class);
Iterator<QueryEngine> it = loader.iterator();
Итератор фактически не выполняет итерацию по реализующим классам.
Я также попробовал:
ServiceLoader.load(QueryEngine.class, Thread.currentThread().getContextClassLoader());
который должен использовать загрузчик классов для текущего класса, но это тоже не работает.
Есть ли какой-то другой механизм, который я должен использовать для загрузки реализующих классов?