0

OSGiベースのシステムを開発およびデプロイする際に、業界で使用されるライフサイクルについての洞察を得たいと思います。
私の主な焦点は、開発フェーズでバージョン管理されたバンドルが作成されてパッケージ化された後の、展開フェーズです。具体的には、実行される可能性のあるテスト手順、および統合の方法。
いくつかの低レベルの詳細を含む非常に高レベルのアカウントは非常に役立ちます。
ありがとうございました。

4

3 に答える 3

1

OSGiバンドルは、実行中のOSGiエンジン(Equinox、Felix、dmServerなど)で一緒にアセンブルできます。他のコードと同様に、プラットフォーム固有の動作(c:\スタイルのファイル参照を使用するWindowsでのみ機能するコードなど)、JNIと連携して機能し、x86プラットフォームでのみ有効なコードなどに依存する場合があります。OSGiは、これらの場合のソフトウェアテストを支援または妨害しません。

それが複雑さを増す可能性があるのは、実行中のバンドルの完全な組み合わせ爆発です。単一のモノリシックCLASSPATHで非常にうまく実行できるJavaアプリケーションとは異なり、エラーは後で発生する傾向があります(たとえば、JDBCドライバーをロードしようとしたときのClassNotFoundExceptionなど)。OSGiは、少なくともバンドルに必要なパッケージのエクスポートが必要であることを保証する上で、この点でいくらか役立ちます。ただし、それでも、一部のパッケージはオプションである可能性があるため、同じ問題が発生します。

OSGiバンドラーとして、あなたは本当にテストする必要があります:

  • これらのバンドルは実際にすべて起動しますか?つまり、お気に入りのOSGiエンジンにインストールした後、start nは正しく機能しますか?すべての依存関係がある場合は、INSTALLEDからRESOLVED、ACTIVEに移行する必要があります。INSTALLEDのままである場合は、いくつかの依存関係が欠落していることを意味します
  • OSGi VMの起動時に、アプリケーションで特定のバンドル(DeclarativeServicesやRemoteServicesなど)を起動する必要がありますか?
  • バンドル間に開始順序の問題はありますか?それらはすべて正常に機能するはずですが、バンドルAがバンドルBの前に開始した場合に何が起こるかをテストすることをお勧めします

これらは、バンドルのセットが相互に機能することを証明するときにテストを検討する必要がある種類の追加事項です。理想的には、実行できるOSGi VMテストがあります。これが、EclipseのJUnitプラグインテストの実行方法です。

于 2009-07-27T21:19:49.827 に答える
0

Eclipse は、私が認識している最大の OSGi ベースのシステムの 1 つであるため、Eclipse について学ぶことができます。また、バージョニングと、Eclipse プラットフォームでのテストの使用方法について説明したドキュメントが多数あります。

于 2009-04-10T01:52:03.310 に答える
0

dmServer の入門ガイドを読むか、 SpringSource.org dmServer サイトのその他の情報を参照することをお勧めします。

入門ガイドでは、 GreenPagesと呼ばれる小さな Web アプリケーションについて説明しています。これは、スケルトン プロジェクト構造から段階的に構築されます。最終的な実装は、モジュール式のマルチバンドル アプリケーションです。その過程で、スタンドアロン (Maven) ビルドだけでなく、Eclipse での単体テストと統合テストも示されます。

Eclipse は大規模であり、一見すると便利な例ですが、OSGi モジュラー システムの典型であるとは思えませんし、採用されている開発プロセスのライフサイクルの説明も認識していません。

于 2009-05-17T01:26:59.337 に答える