Возможно, вы захотите использовать OSGi в качестве механизма загрузки плагинов.
Проект с открытым исходным кодом Eclipse Virgo предоставляет среду выполнения OSGi, подходящую для вашегопроект, потому что в него встроен Spring. Virgo предлагает серверы на базе Tomcat и Jetty и отдельное ядро, которое можно использовать отдельно или для создания других типов серверов.Посетите веб-сайт Virgo, чтобы узнать о функциях и преимуществах .
OSGi имеет совершенно иной дизайн, чем вы привыкли использовать в Java.Это дает вам контролируемую изоляцию между плагинами, известными как связки , в отличие от линейного пути к классам.Пакеты соединяются вместе в графе зависимостей и поддерживают управление версиями и динамические операции жизненного цикла.
Предпочтительным способом использования пакета других возможностей пакетов является использование реестра служб OSGi.Проект Spring DM позволяет публиковать обычные компоненты Spring в реестре служб и искать их в реестре служб.Spring DM также встроен в Деву.Spring DM был подарен Eclipse как проект Gemini Blueprint .
Чтобы использовать Virgo, вы должны добавить некоторую конфигурацию Spring DM для каждого из ваших плагинов в каталоге META-INF / spring.Эта конфигурация, которая является обычным файлом конфигурации XML Spring, может ссылаться на bean-компоненты в других ваших файлах Spring и публиковать эти bean-компоненты в реестре сервисов или может предоставлять bean-компоненты для сервисов, которые ищутся в реестре сервисов, на которые затем могут ссылаться и вводитьinto, bean-компоненты в других ваших файлах Spring.
Затем вы развернете свои плагины в Virgo, используя любой из поддерживаемых механизмов.Вы можете просто отбросить их в порядке зависимости в каталог раскладки.Или же вы можете использовать консоль веб-администратора или консоль оболочки для развертывания.
В качестве альтернативы, и это, похоже, вполне соответствует вашим требованиям, вы можете разместить плагины, предоставляющие пакеты для других плагинов, в репозитории Virgo, удалив ихв репозиторий / usr, а затем разверните плагины, которые (транзитивно) зависят от плагинов репозитория, через каталог раскладки или консоль веб-администратора.Дева автоматически развернет зависимости из хранилища при развертывании зависимых плагинов.
Вы также можете сгруппировать плагины вместе либо в архиве, известном как PAR , либо храня их вРепозиторий Virgo и затем ссылка на них в XML-файле, известном как plan .Затем вы должны развернуть PAR или план, как описано выше.Вы даже можете поместить некоторые из зависимостей в хранилище Virgo и уменьшить PAR или планировать содержать только зависимые плагины.
Если вам нужна дополнительная информация о Virgo, просто спросите на форуме сообщества Virgo.