Настройте 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 для статической компиляции?

Спасибо!

0 ответов

Другие вопросы по тегам