2

ServiceMixコンテナのライブラリをアップグレードする手順(FuseESBコンパイル)は何ですか?

Spring3.0.5を使用しているFuseバージョン4.4.1を使用しています。新しいバージョンのSpringが利用可能ですが、それを使用したい場合はどうすればよいですか?

startup.propertiesで直接参照されているものでは、タスクは明らかですが、Springなどの他のものではどうでしょうか。Googleで更新手順の説明を探していましたが、何の努力もしていませんでした。そのような更新を手動で実行し、新しいjarをコピーする以外に実行する必要があることを記述できましたか?

Springはsystem/org/springframeworkディレクトリにあります。そのディレクトリに移動して、Spring jarを新しいバージョンに置き換えることはできますか?

ServiceMixは十分に文書化されておらず、そのような手順に関する情報も見つかりませんでした。

4

1 に答える 1

2

Fuse ESB v4.xスタックは、カーネルとしてKarafを備えたOSGiコンテナーです。ESBに含まれている事前定義された機能を避けて、プロジェクトの依存関係に基づいて構築したアプリケーション固有の機能XMLを作成するのと同じくらい簡単です。

問題が発生する可能性のある領域の1つは、新しいバージョンの「コア」(startup.propertiesファイルで定義されているもの)のESBランタイム依存関係を追加しようとすることです。これは、OSGiコンテナーで完全に受け入れられるはずです。ただし、これらのバンドルの古いバージョンでは、バージョンの包含のみを指定し、除外を指定しないインポートを含むマニフェストの定義が不十分でした。次に、OSGiコンテナーは、バンドルで定義されたインポート・パッケージとバージョンに一致するすべての使用可能なパッケージを調べ、除外がないパッケージは、バンドルの初期化時に使用可能な最高のバージョンを取得します。

たとえば、Spring Beans 2.5.6に強く依存するコアバンドルがあり、そのバンドルがversion = 2のみを指定し、version = [2,3)を指定していない場合、そのコアバンドルはSpringBeans3からパッケージを取得します。 Spring Beans 2.5.6バンドルではなくバンドルが、コアバンドルを壊す可能性があります。

さらに悪いことに、一部のパッケージがSpring 3バンドルではなく2.5.6バンドルと一致する場合があり、基本的に爆発するクロスインクルージョンが発生します。はい、私はこれを見ました。

基本的には、試行錯誤しながら取り組む必要があります。Fuse ESBで利用できるすべての可能な順列を考えると、実行時にロードされる機能に応じて、コンテナーをアップグレードするために必要な手順を正確に定義するクックブックを作成することは不可能です。

于 2012-05-24T20:36:57.083 に答える