コードを更新し、テストが緑色になったら、カスタムコネクタの新しい Java 17 互換バージョンをリリースする準備が整いました。
-
Java 17 の互換性を伝えるには、カスタムコネクタの mule-sdk-api 連動関係を追加または最新バージョンにアップグレードして、カスタムコネクタの Java 互換性のメタデータを生成します。
<dependency>
<groupId>org.mule.sdk</groupId>
<artifactId>mule-sdk-api</artifactId>
<version>0.10.1</version>
</dependency>
-
Java SDK の場合は、次に示すように @Extension アノテーションと同じクラスに @JavaVersionSupport アノテーションを追加して、JAVA_17 という値を含めます。
|
|
XML SDK Module は Java 17 と互換性があり、プロパティを自動的に継承するため、XML SDK についてのアノテーションを追加する必要はありません。
|
@Extension(name = "Database")
@Operations(...)
@JavaVersionSupport({JAVA_8, JAVA_11, JAVA_17})
public class DatabaseConnector {
..
}
Mule 4.5.0 以降では、@JavaVersionSupport アノテーションを指定しないカスタムコネクタは Java 8 および Java 11 と互換性があると見なされます。
カスタムコネクタは、Java 17 のみと互換性があるとマークできます。ただし、採用や下位互換性の問題が存在しないことを確認する必要があります。
Mule アプリケーションをデプロイすると、Mule アプリケーションのすべてのモジュールに Java バージョンとの互換性があることが検証されます。互換性がないことがわかると Mule はエラーをスローし、アプリケーションはデプロイされません。
|
|
XML SDK ベースのコネクタに固有のエラーメッセージ (Extension 'module-error-handler-plugin' does not support Java 17.Supported versions are: [1.8, 11] など) が表示された場合は、Mule アプリケーションに Java 17 と互換性のないコネクタがまだ含まれていることを意味します。このエラーを解決するには、Mule アプリケーションのすべてのコネクタをアップグレードして、Java 17 と互換性があるようにします。
|
コードが Java 17 と互換性があるが、Java 17 互換性を宣言しない場合でも、テストの実行は成功します。
カスタムコネクタのクイックチェックを実行する場合、またはすべての連動関係の準備ができていない場合は、次の引数を渡して、Java サポート宣言のハードチェックをスキップします。
-M-Dmule.jvm.version.extension.enforcement=LOOSE