В 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
возвращает значение null, в результате чего вышеописанный метод выдает NullPointerException
. Для этой проблемы был создан Grails JIRA issue, но он был отмечен как фиксированный, несмотря на то, что проблема по-прежнему существует.
Я знаю, что в классе дескриптора плагина я могу получить доступ к основному приложению (экземпляр GrailsApplication
) через неявную переменную application
. Но код, показанный выше, находится не в дескрипторе плагина.
Есть ли способ загрузить класс из основного приложения в плагин (но вне дескриптора плагина)?
Спасибо, Дон