我有一个私有流,它是由许多使用flow-ref
的公共流共享的。我希望在私有流中获得调用者流名称,使用MEL
,使用Mule 3.3.0。这可能吗?
Mule在通过flow-ref
调用私有流时不会给事件添加任何属性,所以你的选择是:
- 在调用私有流之前,使用
<set-variable>
设置一个具有流名的变量,并使用#[flowVars.yourVariableName]
读取该变量。 - 使用调用流的入站端点作为判断谁在调用的方式。您可以使用
#[message.inboundProperties.MULE_ENDPOINT]
获得入站端点URL,也可以使用#[message.inboundProperties.MULE_ORIGINATING_ENDPOINT]
获得其名称。 - 创建一个实现FlowConstructAware的自定义MessageProcessor:这样您将获得流名称,并能够自动将其设置为
MuleEvent
消息上的调用变量。在所有父流中使用custom-processor
元素,在flow-ref
之前。