Как использовать и расширять Mule-EL?

Недавно я наткнулся на документацию Mule, и мне кажется, что я могу расширить MEL дополнительными методами из классов Java. У кого-нибудь есть опыт в этом и как это работает?

Таким образом, 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"/>

person EdC    schedule 24.09.2014    source источник


Ответы (1)


Я думаю, что они доступны без квалификации.

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