トランスポートの移行

Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にその すべてのサポート​が終了しました。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

Mule 3 トランスポートはコネクタに置き換えられており、コネクタは Mule 4 の操作モデルに従います。ほとんどの Mule トランスポートは、Mule 4 の対応するコネクタに 置き換え可能です。

すべてのトランスポートに共通の移行に関する問題がいくつかあります。トランスポート固有の 移行ドキュメントについては、 ​「コネクタおよびモジュールの Mule 4 への移行」​および その子ページを代わりに参照してください。

エンドポイントアドレス

Mule 3 では、エンドポイントはトランスポート固有の属性 (たとえば、HTTP エンドポイントは ​host​、​port​、​path​ を使用できました) または汎用の ​address​ 属性を使用して設定できました。

汎用の ​address​ 属性を使用した場合、たとえば以下のようにプロパティを 参照できました。

<http:inbound-endpoint address="${External.URL}"/>

External.URL​ について設定されたプロパティは次のようになります。

External.URL=http://0.0.0.0:8080/rootPath

Mule 4 では、コネクタが接続属性を個別に定義するため、完全なアドレスプロパティはコンポーネントに分割する必要があります。

<http:listener-config name="listenerConfig">
    <http:listener-connection host="${External.URL.host}" port="${External.URL.port}"/>
</http:listener-config>

<flow>
    <http:listener config-ref="listenerConfig" path="${External.URL.path}"/>

    ...
</flow>

プロパティの設定は次のようになります。

External.URL.host=0.0.0.0
External.URL.port=8080
External.URL.path=/rootPath

コネクタ固有のドキュメント (HTTP Connector やメールコネクタ用のドキュメントなど) には、コネクタに必要な正確なプロパティに関する詳細が記載されています。

サービスの上書き

Mule 4 では、カスタム Java コードを使用したサービスの上書きのカスタマイズは サポートされていません。

Mule 3 では、コネクタの ​service-overrides​ 要素を使用してトランスポートの動作を カスタマイズできます。この要素により、 新しい機能を提供するカスタムコードを使用して Java クラスを参照できます。

Mule 3 の例: service-overrides​ を含むコネクタ
<imap:connector name="imapConnector" moveToFolder="processed" deleteReadMessages="false" checkFrequency="200">
    <service-overrides messageReceiver="org.mule.transport.email.functional.RetrieveMessageReceiverPollCounter"/>
</imap:connector>

こうしたカスタマイズを Mule 4 に移行する方法は、 カスタムコードの動作に応じて異なるため、以下の方法が考えられます。

  • DataWeave​ トランスフォーメーション、 ​Java モジュール​、 ​スクリプティングモジュール​などの 他の Mule 機能やコンポーネントを使用してこの機能を提供する。

  • Mule SDK​ を使用して、カスタマイズした トランスポート機能を提供するコネクタを作成する。開始点として、 オープンソースのコネクタを連動関係として使用できます (たとえば、 https://github.com/mulesoft/mule-http-connector)。

  • 前の手法と同じように、オープンソースのコネクタリポジトリをフォークして、 カスタムコードをフォークに追加できます。MuleSoft では変更のプル要求を 歓迎します。

  • MuleSoft に機能要求を行う。​service-overrides​ を通じてカスタムコードで提供した 機能を追加するよう MuleSoft に要求できます。. こうした要求を 送信するには、 MuleSoft サポートの「Ideas (アイデア)」​にアクセスして ください。