0

最近、Mule のドキュメントをいくつか見つけました。Java クラスのメソッドを追加して MEL を拡張できるようです。誰もこれを行った経験があり、それがどのように機能するのですか?

そのため、MEL は次の Java クラスを自動的にインポートして、MEL でそれらのメソッドを呼び出せるようにします。この Java クラスのリストを拡張したいと考えていました。

MEL は、次に示す Java クラスを自動的にインポートします。これらのインポートされたクラスは、完全修飾名を使用せずに使用できます。たとえば、BigInteger がインポートされるため、#[java.math.BigInteger.valueOf(payload.dueAmount)] の代わりに #[BigInteger.valueOf(payload.dueAmount)] を記述できます。

  • java.lang.*
  • java.io.*
  • java.net.*
  • java.util.*
  • java.math.BigDecimal
  • 
<em>java.math.BigInteger
  • javax.activation.DataHandler
  • javax.activation.MimeType
  • java.util.regex.Pattern
  • org.mule.api.transformer.DataType
  • org.mule.transformer.types.DataTypeFactory

追加のJavaクラスのインポートなどを使用してグローバル構成を定義する方法に関するドキュメントがありますが、これを正確に使用する方法がわかりません。

<configuration>
  <expression-language autoResolveVariables="false">
    <import class="org.mule.util.StringUtils" />
    <import name="rsu" class="org.apache.commons.lang.RandomStringUtils" />
    <alias name="appName" expression="app.name" />
    <global-functions file="extraFunctions.mvel">
      def reversePayload() { StringUtils.reverse(payload) }
      def randomString(size) { rsu.randomAlphanumeric(size) }
    </global-functions>
  </expression-language>
</configuration>

上記の構成で MEL のメソッドにどのようにアクセスしますか? それは...

<set-variable value="#[appName.reversePayload()]" variableName="reversePayload" doc:name="Variable containing a reverse version of the Payload"/>
4

1 に答える 1