Мини-OSGi, которая может работать в песочнице (например, AppEngine или WebStart)? - PullRequest
14 голосов
/ 09 апреля 2009

Мне очень нравится концепция модульных комплектов, реализованная OSGi.

Мне также нравятся службы «управляемого развертывания», такие как Google AppEngine (для веб-приложений) или Java WebStart (для клиентских программ).

Эти две идеи, по-видимому, концептуально дополняют друг друга.

Тем не менее, стандарт OSGi включает в себя несколько функций, которые делают невозможным запуск таких реализаций, как Felix или Equinox, на виртуальных машинах с песочницей, таких как AppEngine или Webstart. В этих средах невозможно получить прямой доступ, например, к файловой системе, что исключает использование кеша OSGi, который используется для хранения постоянного состояния пакета и собственных библиотек.

Теперь у меня нет большого интереса к использованию собственных библиотек или к постоянному состоянию пакета. Существует ли какая-либо инфраструктура, которая реализует концепцию ядра пакета и сервисов OSGi (в идеале совместимым образом, чтобы пакеты OSGi могли быть развернуты в нем как есть), но может работать без кэша пакета (и других средств, недоступных в песочнице)

Я ищу что-то вроде ограниченной версии Felix, которая работает на AppEngine или WebStart.

Конечно, если бы движок WebStart и Google AppEngine просто предоставляли готовые сервисы OSGi Framework, это тоже было бы здорово ...

Обновление: Еще один очень ограничивающий аспект AppEngine - невозможность запуска новых потоков. Это предотвращает (среди прочего) управление жизненным циклом асинхронного пакета. Очевидно, не проблема с WebStart.

Ответы [ 5 ]

2 голосов
/ 22 апреля 2009

EclipseSource имеет исправленную версию движка osgi, которая (вроде) работает в AppEngine, загружает zip-файлы проекта из блога: http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/

1 голос
/ 12 декабря 2010

http://code.google.com/p/lemmon/

однако, проверьте проблемы для URLStreamHandler Problem.

Нет личного опыта, просто подсказка, которая может вам помочь.

1 голос
/ 11 апреля 2009

Я почти уверен, что это можно сделать, и Эта страница справки по затмению , возможно, поможет вам начать. Если я правильно понимаю, ваши пакеты должны быть подписаны, а ваш файл jnlp должен запрашивать все разрешения.

1 голос
/ 18 апреля 2009

Тебе стоит поговорить с Крисом Анищиком. Он заставил это работать с Equinox и Knopflerfish. Смотрите скриншот здесь: http://twitpic.com/300lk Он планировал вести блог об этом, но я думаю, что он сейчас довольно занят. Вот ссылка на его блог: http://mea -bloga.blogspot.com /

0 голосов
/ 09 апреля 2009

Если ваша единственная проблема связана с кешем комплектов и вам это не нужно, вы можете избавиться от нее, установив для этого свойства значение null в Equinox или Felix? Я почти уверен, что этот кеш не обязателен для запуска Equinox (не знаю для Феликса)

...