Java: встраивание обработчиков сценариев в приложение: является ли JSR 223 (ScriptEngine) хорошим решением?

Я хочу использовать один или несколько языков сценариев в своем приложении Java.

На сайте JRuby я обнаружил, что есть 3 способа:

  1. Использование Java 6 (с использованием JSR 223: сценарии)
  2. Встраивание с помощью Bean Scripting Framework (BSF)
  3. Прямой вызов API $YOUR_SCRIPTING_ENGINE$

Поскольку мне нужно поддерживать более одного скриптового движка, я не думаю, что вариант 3 будет достаточно хорошим.

При поиске решения 1. JSR 223: Сценарии я начинаю искать zip-архив, содержащий всю интеграцию с механизмом сценариев.

Download and unzip the collection of jars from the documents and files section of the site (jsr223-engines.tar.gz or jsr223-engines.zip).

Но этого файла нигде нет в сети (раздел загрузки дома проекта пуст. Если я хочу, я могу загрузите исходники и создайте необходимую интеграцию с двигателями Исходный код выглядит старым (2+ года для того, что я видел)

JSR 223 все еще жив и стоит ли выбирать? Если нет, то является ли Bean Scripting Framework хорошей альтернативой? У последнего очень плохая страница документации, и поддерживается только несколько языков сценариев (но он поддерживает большую часть языка, который я хочу иметь)...


person Guillaume    schedule 18.03.2011    source источник
comment
Я использовал BSF для мелочей и для развлечения - это работает.   -  person Margus    schedule 19.03.2011


Ответы (1)


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

Если вы не хотите внедрять несколько разных языков или развертывать на виртуальных машинах, на которых уже установлены JAR-файлы JSR 223, то я не думаю, что вы выиграете от дополнительного уровня абстракции.

Я настоятельно рекомендую вам учитывать простоту песочницы при выборе языка для встраивания.

person Mike Samuel    schedule 19.03.2011