Настройте GrrovyClassLoader для учета аннотации @CompileStatic
У меня есть пользовательская библиотека Java, которая реализует бизнес-правила, реализованные в Groovy и предоставляемые через файл конфигурации. Я использую GroovyClassLoader для компиляции бизнес-правил и возврата нужного класса следующим образом:
public class GroovyScriptClassLoader {
private GroovyClassLoader classLoader = null;
public GroovyScriptClassLoader() {
this.classLoader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader());
}
public Rule getRule(final String ruleName, final String ruleSource) {
Class<?> ruleClazz = parseScript(ruleName, ruleSource);
}
private Class<?> parseScript(final String ruleName, final String ruleSource) {
GroovyCodeSource codeSource = new GroovyCodeSource(ruleSource, ruleName, GroovyShell.DEFAULT_CODE_BASE);
codeSource.setCachable(true);
return classLoader.parseClass(codeSource);
}
}
Мои бизнес-правила, встроенные в мои файлы конфигурации, аннотируются на уровне класса аннотацией @CompileStatic.
Как я могу настроить GroovyClassLoader на статическую компиляцию?
Я предполагаю, что это включает в себя создание GroovyClassLoader с CompilerConfiguration (т.е. GroovyClassLoader(загрузчик ClassLoader, конфигурация CompilerConfiguration)), но у меня возникают трудности с поиском конкретной информации для настройки CompilerConfiguration для достижения этой цели.
Кто-нибудь может привести пример того, как настроить GroovyClassLoader для статической компиляции?
Спасибо!