Каков типичный жизненный цикл OSGi? - PullRequest
0 голосов
/ 18 декабря 2008

Я хотел бы получить представление о жизненном цикле, который используется в промышленности при разработке и развертывании систем на основе OSGi.
Мое основное внимание уделяется этапам развертывания, после того как на этапе разработки был создан версионный и упакованный пакет. Конкретные процедуры тестирования, которые могут быть выполнены, и метод интеграции.
Очень полезен аккаунт очень высокого уровня с некоторыми низкоуровневыми деталями.
Спасибо.

Ответы [ 3 ]

1 голос
/ 28 июля 2009

Пакеты OSGi могут быть собраны вместе в работающем движке OSGi (будь то Equinox, Felix, dmServer и т. Д.). Как и в случае с другим кодом, могут существовать зависимости от поведения платформы (например, кода, работающего только в Windows, использующего ссылки на файлы в стиле c: \), кода, который работает вместе с JNI и действительного только для платформ x86, и так далее. В этих случаях OSGi не помогает и не мешает тестированию программного обеспечения.

Где это может добавить сложность - в явном комбинаторном взрыве бегущих пучков. В отличие от Java-приложения, которое вполне может работать на одном монолитном CLASSPATH, вы, как правило, не обнаруживает ошибок до позднего времени (например, ClassNotFoundException при попытке загрузить драйвер JDBC, например). OSGi несколько помогает в этом отношении, обеспечивая, по крайней мере, необходимый экспорт пакетов для пакетов; но даже в этом случае некоторые пакеты могут быть необязательными и, следовательно, заканчиваться той же проблемой.

Как пакет OSGi, вам действительно нужно протестировать:

  • Действительно ли все эти пакеты запускаются, т.е. после установки в ваш любимый движок OSGi, работает ли n правильно? Если у вас есть все ваши зависимости, то он должен перейти от INSTALLED к RESOLVED к ACTIVE; если он остается в INSTALLED, значит, ему не хватает некоторых зависимостей
  • При запуске виртуальной машины OSGi вашему приложению нужны определенные пакеты (например, декларативные или удаленные службы)?
  • Есть ли проблемы с порядком запуска между пакетами? Все они должны просто работать, но вы можете проверить, что произойдет, если Пакет А запускается до Пакета В

Это те дополнительные вещи, на которые вы должны обратить внимание при тестировании при сертификации набора пакетов для работы друг с другом. В идеале, у вас должны быть тесты виртуальных машин в OSGi, которые вы можете запустить - вот как выполняются тесты плагинов Eclipse для JUnit.

0 голосов
/ 17 мая 2009

Я рекомендую прочитать Руководство по началу работы для dmServer или посмотреть другую информацию с сайта SpringSource.org dmServer .

Руководство по началу работы описывает небольшое веб-приложение под названием GreenPages , которое поэтапно создается из структуры скелетного проекта. Конечная реализация представляет собой модульное, многоуровневое приложение. Кроме того, в Eclipse демонстрируется модульное и интеграционное тестирование, а также автономная сборка (Maven).

Несмотря на то, что Eclipse большой и полезный пример, я бы не ожидал, что он будет типичным для модульных систем OSGi, и при этом я не знаю объяснения используемого жизненного цикла процесса разработки.

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

Вы можете изучать Eclipse, поскольку это одна из крупнейших систем на базе OSGi, о которой я знаю. И у них есть много документов, в которых говорится о версиях и о том, как они используют тестирование на платформе eclipse.

...