В плагине Grails 1.1 я пытаюсь загрузить класс из основного приложения, используя следующий код:
class MyClass {
static Map getCustomConfig(String configName){
return new ConfigSlurper().
parse(ApplicationHolder.application.classLoader.loadClass(configName))
}
}
Где configName
- это имя класса в $MAIN_APP/grails-app/conf
, содержащее информацию о конфигурации. Однако, когда приведенный выше код выполняется внутри модульного теста, applicationHolder.application
возвращает ноль, в результате чего приведенный выше метод выдает NullPointerException
. Для этой проблемы была создана проблема Grails JIRA , но она помечена как исправленная, несмотря на то, что проблема, похоже, все еще существует.
Я знаю, что в классе дескриптора плагина я могу получить доступ к основному приложению (экземпляр GrailsApplication
) через неявную переменную application
. Но приведенный выше код отсутствует в дескрипторе плагина.
Есть ли способ, которым я могу загрузить класс из основного приложения внутри плагина (но вне дескриптора плагина)?
Спасибо,
Дон