Динамическая загрузка Groovy в приложение Grails

Да, мы знаем обо всех рисках безопасности, связанных с возможностью загрузки кода в производственную систему пользователями, но ради ответа на этот вопрос давайте притворимся, что это не имеет значения.

В разрабатываемом приложении Grails нам нужно разрешить пользователю загружать некоторый код Groovy, который будет использоваться приложением Grails, а также интерфейс командной строки, который наши клиенты будут загружать и использовать.

Мне известно о следующей документации по внедрению Groovy.

Есть ли лучшая альтернатива встраиванию и интерпретации на лету? Или это почти все?


person Gregg    schedule 02.04.2012    source источник
comment
Альтернатива просит пользователей скомпилировать и отправить скомпилированные классы/jar, но я уверен, что это не то, что вы хотите.   -  person Igor Artamonov    schedule 02.04.2012
comment
Я не против этого. Если бы я использовал этот подход, как мне загрузить его в загрузчик классов Tomcat? Итак, другие части моего приложения могут видеть байт-код?   -  person Gregg    schedule 02.04.2012
comment
Я действительно думал, что вы делаете какой-то интерпретатор сценариев. Хорошо, загрузка классов более гибкая (вы можете использовать обычную Java, другие языки jvm), но я не уверен в использовании собственного загрузчика классов внутри Tomcat.   -  person Igor Artamonov    schedule 02.04.2012


Ответы (1)


Зависит от того, что вы подразумеваете под внедрением Groovy. Подключаемый модуль консоли предоставляет довольно удобный способ добавления исполняемого кода на лету с доступом к контексту Grails и классам предметной области. http://grails.org/plugin/console . Если вы посмотрите на код, будет несложно просто хранить скрипты в вашей базе данных в виде строк и использовать механизм выполнения скриптов, предоставляемый плагином.

person Tomas Lin    schedule 02.04.2012