0
最近,我遇到了一些Mule文档,看起来我可以用Java类中的更多方法扩展MEL。有没有人有这样做的经验,以及它是如何工作的?如何使用和扩展Mule-EL?
因此,MEL会自动导入以下java类,以便我们可以在MEL中调用它们的方法。希望扩展这个java类的列表。
MEL自动导入下面列出的Java类。您可以使用这些导入的类而不使用完整限定符名称。例如,由于BigInteger已导入,因此可以编写#[BigInteger.valueOf(payload.dueAmount)]而不是#[java.math.BigInteger.valueOf(payload.dueAmount)]。
- 的java.lang。*
- java.io. *
- java.net。*
- 的java.util。*
- 的Java。 math.BigDecimal
- 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"/>