SDK バージョンの選択

開発者は、特定の製品で使用可能な最新バージョンを使用する傾向にあります。これは Mule SDK の場合には適用しないでください。Mule モジュールを拡張するために使用する SDK のバージョンを選択するときは、次の操作を実行します。

  • 必要な機能を特定する。

  • 必要な機能が含まれる最下位のバージョンを選択する。

次のセクションでこの理由を説明します。

Extensions API

SDK を使用して開発している場合、実際には API (Extensions API) を使用しています。いずれかの SDK アノテーションで項目またはメソッドにアノテーションを付加するとき、またはインターフェースを実装するときは常に、この Extensions API の一部を使用していることになります。配布するモジュールにはコードのみが含まれます。モジュールと Mule Runtime の内部をブリッジするコードは含まれません。このギャップは、Extensions API によって Runtime でブリッジされます。

最小 Mule バージョン

Mule Runtime の各バージョンは、Extensions API の 1 つの特定バージョンとその前のすべてのバージョンのサポートが含まれて配布されます。

たとえば、次の両方が該当するとします。

  • Mule 4.1 には SDK バージョン 1.1 が付属する。

  • Mule 4.2 には SDK バージョン 1.2 が付属する。

Mule 4.2 は、SDK バージョン 1.21.1、および 1.0 で開発されたモジュールを完全にサポートします。Mule 4.3 で SDK 1.3 が導入された場合、1.21.1 などもサポートされます。

この概念は次の両方に適用されます。

  • どの Mule Runtime バージョンも以前にリリースされたすべての SDK バージョンをサポートしているため、Mule 4.1 で機能するモジュールはすべての Mule 4.x (x >= 1) で機能する。

  • モジュールが SDK 1.2 を使用して作成された場合、その SDK バージョンをサポートするランタイムでのみ機能する。この例の場合、このモジュールは Mule 4.1 では機能しません。

必要な機能の特定

使用可能な最新の SDK バージョンの使用は、モジュールと互換性があるのは最新の Mule Runtime のみになるため、避けてください。代わりに、次のように、必要なすべての機能を含む最も古いバージョンを使用します。

  • 接続と基本的な DataSense のみを必要とする単純なコネクタを作成している場合、バージョン 1.0 を使用する。

  • PollingSource インターフェースも使用する必要がある場合、PollingSource のサポートが導入された SDK 1.1 を使用する。その機能をサポートするランタイムのみがモジュールを実行できます。

SDK の新機能については、ドキュメントにそれが導入されたバージョンが記載されています。特定のバージョンが指定されていない場合、その機能は最初のバージョンから存在しています。

お勧めする方法は、バージョン 1.0.0 を使用してすべてのプロジェクトを開始し、特定の機能が必要になったときにのみ、バージョンをアップグレードすることです。

これらのガイドラインに従うことで、モジュールはより多くの Mule Runtime バージョンとの互換性が保たれるため、より多くのユーザがモジュールを使用できるようになります。新しいバージョンの機能が不要な場合、新しいバージョンを使用する理由はありません。

SDK にバグがある場合は?

Extensions API は API であり、その実装は Mule Runtime 内にあるため、ほとんどの SDK 関連のバグ修正は新しい SDK バージョンではなく、Mule Runtime のパッチリリースおよびサービスパックでリリースされます。

問題が API 定義内にある一部のコーナーケースでは、SDK のパッチリリースが使用可能になります (1.1.2 など)。常により高いバージョンのバグ修正を選択する必要があります。たとえば、1.0.01.0.4 がある場合、1.0.4 を選択します。

上記のバージョン番号は、既存のバージョンまたはパッチを表すとは限らない例として使用されていることに注意してください。

バージョンの変更

SDK の version は、モジュールの pom.xml ファイルの parent 要素内で指定されます。

<parent>
  <groupId>org.mule.extensions</groupId>
  <artifactId>mule-modules-parent</artifactId>
  <version>1.0.0</version>
</parent>

別のバージョンに変更するには、単に親バージョンを変更します。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub