如何使用和扩展Mule EL?

如何使用和扩展Mule EL?,mule,mule-studio,mule-el,mule-component,Mule,Mule Studio,Mule El,Mule Component,最近,我遇到了一些Mule文档,似乎我可以用java类中的更多方法扩展MEL。有没有人有这样做的经验,以及它是如何工作的 因此,MEL自动导入以下java类,以便我们可以在MEL中调用它们的方法。他希望扩展这个java类列表 MEL自动导入下面列出的Java类。您可以使用这些导入的类,而无需使用完整的限定符名称。例如,由于导入了BigInteger,因此可以编写#[BigInteger.valueOf(payload.dueAmunt)],而不是#[java.math.BigInteger.va

最近,我遇到了一些Mule文档,似乎我可以用java类中的更多方法扩展MEL。有没有人有这样做的经验,以及它是如何工作的

因此,MEL自动导入以下java类,以便我们可以在MEL中调用它们的方法。他希望扩展这个java类列表

MEL自动导入下面列出的Java类。您可以使用这些导入的类,而无需使用完整的限定符名称。例如,由于导入了BigInteger,因此可以编写#[BigInteger.valueOf(payload.dueAmunt)],而不是#[java.math.BigInteger.valueOf(payload.dueAmunt)]

  • java.lang*
  • java.io*
  • java.net*
  • java.util*
  • java.math.BigDecimal
  • 
java.math.biginger
  • 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>

def reversePayload(){StringUtils.reverse(有效负载)}
def randomString(大小){rsu.randomsalphanumeric(大小)}
您将如何使用上述配置访问MEL中的方法?是不是

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

我认为它们是无条件提供的

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