2013-12-16 45 views
1

我們有一個出站過濾路由器,如:騾子2.X過濾路由器結合AND和OR過濾器

 <filtering-router> 
      <jms:outbound-endpoint queue="blah" 
       connector-ref="blah" 
       transformer-refs="BasePayloadToMsgEnvelope ObjectToJMSMessage"> 
       <ee:multi-transaction action="ALWAYS_JOIN"/> 
      </jms:outbound-endpoint> 
      <and-filter> 
       <payload-type-filter expectedType="com.my.type"/> 
       <expression-filter expression="payload.thingy.equals('31')" 
       evaluator="groovy" /> 
      </and-filter> 
     </filtering-router> 

但我想說的是這樣的:

 <filtering-router> 
      <jms:outbound-endpoint queue="blah" 
       connector-ref="blah" 
       transformer-refs="BasePayloadToMsgEnvelope ObjectToJMSMessage"> 
       <ee:multi-transaction action="ALWAYS_JOIN"/> 
      </jms:outbound-endpoint> 
      <and-filter> 
       <payload-type-filter expectedType="com.my.type"/> OR <payload-type-filter expectedType="com.my.othertype"/> 
       <expression-filter expression="payload.thingy.equals('31')" 
       evaluator="groovy" /> 
      </and-filter> 
     </filtering-router> 

這是可能?我認爲這可能會使用一種有效載荷類型的表達式計算器,但我無法找到一個這樣做的例子。

回答

0

什麼:

<and-filter> 
    <or-filter> 
    <payload-type-filter expectedType="com.my.type"/> 
    <payload-type-filter expectedType="com.my.othertype"/> 
    </or-filter> 
    <expression-filter expression="payload.thingy.equals('31')" 
    evaluator="groovy" /> 
</and-filter> 
+0

哦,你可以窩呢?我沒有在2.2文檔中看到這樣的例子嗎? – grover

+0

我不知道現在2.2文檔在哪裏,但這是最老的文檔可用,它說它們可以嵌套:http://www.mulesoft.org/documentation-3.2/display/32X/Using+Filters#UsingFilters -LogicFilters –

+1

[2.2 docs are here](http://www.milesoft.org/documentation-3.2/display/MULE2USER/Using+Filters#UsingFilters-LogicFilters),是的,它有相同的註釋,謝謝指出! – grover