Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerDataWeave は、Mule 4 の主要な式言語であり、Mule SDK もそれに準拠しています。そのため、Mule 操作をコーディングするのと同じように、モジュールのコードから DataWeave に関数を寄稿することができます。カスタム関数を使用することで、新しい方法でコードが再利用できるようになり、単一モジュール内で機能が追加され、宣言方法に関するオーバーヘッドも Mule 操作と比較して非常に少なくて済みます。
Extension レベルで @ExpressionFunctions
アノテーションを使用することで、DataWeave 関数を表す公開メソッドを含むクラスを参照できます。このメソッドのコードは、名前を識別子として DataWeave スクリプトから直接実行されます。
@Extension(name = "Docs")
@ExpressionFunctions(DocsFunction.class)
public class DocsModule {
}
この例は、DocsFunction
クラスで次のメソッドを定義しています。
public Object xpath(@Optional(defaultValue = PAYLOAD) InputStream item,
String expression){
try {
return xPathFactory.newXPath().evaluate(expression, documentBuilder.parse(item));
} catch (Exception e) {
return null;
}
}
この xpath
関数は、DataWeave スクリプト内から使用して、モジュールの名前空間内で参照できます。
次の例では XML を読み取って、新しい xpath
関数を使用して XPath 検索条件を設定しています。
<flow name="xpathFunctionUsingPayloadAsDefault">
<file:read path="files/bookstore.xml"/>
<set-payload value="#[Docs::xpath("/bookstore/book[price>35]/title")]"/>
</flow>
上記の簡素化された例の実際の実装は、 XPathFunction.java を参照してください。