2009-08-05 17 views
3

私は大規模で成長しているOSGiアプリケーションをいくつかバンドルしています。私はこのタイプのアプリケーションを管理する最善の方法を知りたいと思っています。現在、私はEclipseとMavenを使用していますが、バンドルのビルド(maven-bundle-plugin経由)には適していますが、今のところアプリケーション全体を管理するのは容易ではありません。大規模なOSGiアプリケーションの管理

私がしたいのは、1つの実行コンフィギュレーションか1つのpom.xmlを起動し、アプリケーション/プロジェクト全体をビルドして起動することです。また、私はデバッグに適した何かを持っていたいと思います。

私はPAX Constructについて聞いたことがありますが、Eclipseにインストールしていますが、これまではほとんど役に立たなかったでしょう(多分私は正しく使用していないかもしれません)。

大規模なOSGiアプリケーションが正しく管理されていると確信しています。分かち合うことができるアドバイスはすごく助けになります。

は、ありがとう スティーブン

答えて

1

実行構成がPax Runnerを介して可能です。 OSGiプラットフォームの実装の選択、プロファイルの指定(一部のロール向けのパッケージ化されたバンドルのセット、例えばweblogdsなど)、優れたプロビジョニングサポートがあります。例えば、Mavenリポジトリからバンドルをロードできます。その結果、あなたはあなたのアプリケーションが非常に大きい場合には

--platform=felix 
--log=INFO 
--profiles=scalamodules,ds,config,log 
mvn:com.my/bundle/[email protected] 
# other bundles 

などの実行構成を持つことができるか、あなたにも独自のプロファイルを作成するための方法が、異なるアプリケーションを持っています。

0

私はOSGiのに非常に新しいんだけど、

すると、あなたがバンドル を必要とする1つのOBRのリポジトリファイルを持っているとOBRを聞かせ ような方法で、OBR-サービスを利用することはできません-serviceは依存関係を把握し、あなたのOSGIhostを移植しますか?

1

うーん...

それあなたが「管理」することで、アプリケーションを意味しています何のすべてのdeopends。

EclipseのIDEはビルドとデバッグのための時間です。

メイヴェン...私はそれを使用したことがないので、私はそれについて話すことはできません。

私たちはかなりEclipseベースのアプリケーション(実際にはいくつか)を持っていて、Eclipseのほかに特別なものを使用していないものの開発側ではSCMが統合されています。

ccビルドサーバーでは、ビルドとパッケージングにヘッドレスeclipseも使用します。

ここでは、依存関係と中間ビルドのすべての段階で、ワークスペースの設定が遅れているため、ターゲットプラットフォームとワークスペースリソースのマテリアライゼーションを管理するためにBuckminsterを調査しています。

もしそれがうまくいくならば、私たちはおそらくBuckyとのビルディングに移ります。確かに有望です。

(私はPAXの経験はありませんが、一見すると有望ですが...)

0

この部分は、現時点では非常にサポートが貧弱だと思います。 OSGIでは、デプロイメントやパッケージングについて実際には何も定義していないため、他のフレームワーク(Eclipseなど)までは独自の方法を思いついています。

RCP(Eclipseベース)アプリケーションを構築している場合、Eclipseシステムはこれらのすべてを行い、exesなどの作成に至ります。ただし、ビルドはEclipseワークスペースで主に行われますが、ヘッドレスビルドはトリッキーです。 Tychoプロジェクトは、MavenとEclipseのビルドサイクルに参加することで、これをより合理的にしようとしていますが、それでも汎用OSGIではなくRCPアプリケーションに焦点を当てています。

私の状況でもあるRCPをやっていないのであれば、一般的な解決策が見つかっていないので、おそらく自分のソリューションをロールバックする必要があります。

アプリケーションに含まれるすべてのバンドルをリストする1つのPOMプロジェクトを定義します。このプロジェクトはすべて、参照をリストしています - それを 'bundle-list'プロジェクトと呼ぶことができます。

次に、paxプロビジョニングを使用してプロジェクトを開発モードで実行します。これは、 'bundle-list'ポームをpaxプロジェクトのプロビジョニングpomの親(通常は 'provision'フォルダ内)にすることによって実現されます。次に、paxを起動すると、そのプロジェクトのバンドルのリストを使用してOSGIを起動します。 'bundle-list'プロジェクトのバンドル参照は、これが機能するために '提供された'スコープとしてマークされなければなりません。

次に、ディストリビューションを作成するために、別のプロジェクトがあります。このプロジェクトには、バンドルリストプロジェクトも親としてあります。このプロジェクトでは、バンドルjarをダウンロードするなど、さまざまなプラグインを使用して配布を作成しています。このディストリビューションにはOSGIを起動するスクリプトが含まれていますが、手書きで書かれています.paxシステムはありません。

これは、バンドルのリストを1か所に保存するのにうまくいきますが、手書きのスクリプトがたくさんあり、2つのシステム間で設定を共有する際に問題があります。設定ファイル、バンドル開始レベルなど

関連する問題