Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にその すべてのサポートが終了しました。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
スキーマ検証用に Mule 3 にバンドルされていた JSON モジュールが、Mule 4 で新しい JSON モジュールに置き換わります。
JSON を使用する変換を移行するには、DataWeave を使用することをお勧めします。
Mule 3 の場合、多くのコンポーネントでは、項目にアクセスできるようペイロードは POJO である必要がありました。Mule 4 では、JSON ペイロードで直接 DataWeave をクエリ言語として使用し、ペイロードを中間ステップとして POJO に変換する必要性を完全に回避できます。
json:json-to-object-transformer
に設定されるマッピングルールの場合は、DataWeave でルールを記述できます。
Mule 3 の場合:
例: マッパー設定で使用される Mixin
public abstract class AppleMixin
{
AppleMixin(@JsonProperty("bitten") boolean wasBitten)
{
super();
}
}
例: マッパーを参照するトランスフォーマ
<json:mapper name="myMapper">
<json:mixin mixinClass="org.mule.module.json.transformers.AppleMixin"
targetClass="org.mule.tck.testmodels.fruit.Apple"/>
</json:mapper>
<flow name="flow">
<json:json-to-object-transformer returnClass="org.mule.tck.testmodels.fruit.Apple"
mapper-ref="myMapper"/>
</flow>
Mule 4 の場合:
例: DataWeave をマッパーとして使用
<flow name="flow">
<ee:transform>
<ee:message>
<ee:set-payload>
<![CDATA[%dw 2.0
type apple = Object { class: "org.mule.tck.testmodels.fruit.Apple"}
output application/java
---
{
wasBitten = bitten
} as apple
]]>
</ee:set-payload>
</ee:message>
</ee:transform>
</flow>
Mule 4 ではマッパーや mixin クラスを定義する必要がありません。マッピングルールは DataWeave コードを使用して定義されます。
json:object-to-json-transformer
のマッピングルールも DataWeave を使用して表されます。
Mule 3 の場合:
例: Mixin を使用したトランスフォーマ
<flow name="flow">
<json:object-to-json-transformer returnClass="org.mule.tck.testmodels.fruit.Apple">
<json:serialization-mixin mixinClass="org.mule.module.json.transformers.AppleMixin"
targetClass="org.mule.tck.testmodels.fruit.Apple"/>
</json:object-to-json-transformer>
</flow>
Mule 4 の場合:
例: DataWeave をマッパーとして使用
<flow name="flow">
<ee:transform>
<ee:message>
<ee:set-payload>
<![CDATA[%dw 2.0
output application/json
---
{
bitten = wasBitten
}
]]>
</ee:set-payload>
</ee:message>
</ee:transform>
</flow>
Mule 4 では変換で出力形式を設定できます。この場合は、変換関数が JSON ペイロードを返すように式で出力を application/json
として定義します。
Mule 4 の JSON モジュールは、XSLT マッピングに基づいて JSON を変換するコンポーネントは提供されていません。この場合には、次のような対処法があります。
XSLT を DataWeave 変換に移行する (推奨)。
XML モジュールの XSLT サポートを使用して最初にペイロードを XML に変換する。
<flow name="flow">
...
<xml-module:xslt-transform>
<xml-module:content>#[output application/xml --- payload]</xml-module:content>
<xml-module:xslt>
(the XSLT transformation) ...
</xml-module:xslt>
</xml-module:xslt-transform>
...
</flow>