XSLT-зависимости между OSGI Bundles - PullRequest
3 голосов
/ 21 марта 2012

Я исследовал OSGI, чтобы определить его жизнеспособность для обновления существующего проекта. В настоящее время проект состоит из модулей (которые в основном являются просто каталогами), которые содержат XSL-преобразования. Преобразования содержат зависимости от преобразований из других модулей в форме операторов xsl: import и xsl: include. Причина, по которой я рассматриваю OSGI, заключается в том, что с увеличением количества модулей становится все труднее отслеживать зависимости и эффективно тестировать модули.

Возможно ли использование инфраструктуры OSGI для объявления ресурсов XML / XSLT, содержащихся в пакете, и ссылки на эти ресурсы в операторах импорта преобразований XSL в отдельном пакете.

Ответы [ 3 ]

2 голосов
/ 21 марта 2012

Да, это работает, как указал Лукаш, вам нужно написать простой URIResolver на основе модели экстендера.Интересный подход заключается в использовании заголовков Provide-Capability и Require-Capability для моделирования зависимостей.Это позволит вам обрабатывать зависимости с хорошей диагностикой, позволит вам запускать несколько версий одновременно, и он будет работать с OBR, распознавателем, который может найти недостающие части.См. http://www.osgi.org/blog/2012/03/requirements-and-capabilities.html

И это будет первый случай использования факта, что XSLT является XML ... вы могли бы написать простую таблицу стилей, которая генерировала заголовки Require-Capability!: -)

2 голосов
/ 21 марта 2012

Ваш вопрос кажется очень интересным. Лично я работаю в системе, которая имеет два пакета. Один пакет содержит реализацию XSLT-процессора (мы используем Saxon), а второй содержит несколько файлов XSLT (которые используют инструкцию xsl:import). И он отлично работает в среде OSGi (фактически Fuse ESB), однако нам нужно было реализовать интерфейс javax.xml.transform.URIResolver и передать его конвертеру.

Полагаю, вам нужно использовать аналогичный подход. Надеюсь, это поможет.

0 голосов
/ 21 марта 2012

Я бы просто использовал Maven для управления зависимостями на вашем месте - проще настроить ваши зависимости, и он действительно очень хорошо обрабатывает переходные зависимости. Используйте OSGi, если вам нужно изменить XSL-модули на время выполнения . В обоих случаях вам нужно реализовать URIResolver, упомянутый в другом ответе.

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