1 17 package org.apache.servicemix.eip; 18 19 import javax.jbi.messaging.ExchangeStatus; 20 import javax.jbi.messaging.InOnly; 21 import javax.jbi.messaging.InOut; 22 import javax.xml.namespace.QName ; 23 24 import org.apache.servicemix.eip.patterns.MessageFilter; 25 import org.apache.servicemix.eip.support.XPathPredicate; 26 import org.apache.servicemix.tck.ReceiverComponent; 27 28 public class MessageFilterTxTest extends AbstractEIPTransactionalTest { 29 30 protected MessageFilter messageFilter; 31 32 protected void setUp() throws Exception { 33 super.setUp(); 34 35 messageFilter = new MessageFilter(); 36 messageFilter.setFilter(new XPathPredicate("/hello/@id = '1'")); 37 messageFilter.setTarget(createServiceExchangeTarget(new QName ("target"))); 38 configurePattern(messageFilter); 39 activateComponent(messageFilter, "messageFilter"); 40 } 41 42 public void testInOnlySync() throws Exception { 43 ReceiverComponent rec = activateReceiver("target"); 44 45 tm.begin(); 46 47 InOnly me = client.createInOnlyExchange(); 48 me.setService(new QName ("messageFilter")); 49 me.getInMessage().setContent(createSource("<hello><one/><two/><three/></hello>")); 50 client.sendSync(me); 51 assertEquals(ExchangeStatus.DONE, me.getStatus()); 52 53 tm.commit(); 54 55 rec.getMessageList().assertMessagesReceived(0); 56 57 tm.begin(); 58 59 me = client.createInOnlyExchange(); 60 me.setService(new QName ("messageFilter")); 61 me.getInMessage().setContent(createSource("<hello id='1'><one/><two/><three/></hello>")); 62 client.sendSync(me); 63 assertEquals(ExchangeStatus.DONE, me.getStatus()); 64 65 tm.commit(); 66 67 rec.getMessageList().assertMessagesReceived(1); 68 } 69 70 public void testInOnlyAsync() throws Exception { 71 ReceiverComponent rec = activateReceiver("target"); 72 73 tm.begin(); 74 75 InOnly me = client.createInOnlyExchange(); 76 me.setService(new QName ("messageFilter")); 77 me.getInMessage().setContent(createSource("<hello><one/><two/><three/></hello>")); 78 client.send(me); 79 80 me = client.createInOnlyExchange(); 81 me.setService(new QName ("messageFilter")); 82 me.getInMessage().setContent(createSource("<hello id='1'><one/><two/><three/></hello>")); 83 client.send(me); 84 85 tm.commit(); 86 87 me = (InOnly) client.receive(); 88 assertEquals(ExchangeStatus.DONE, me.getStatus()); 89 me = (InOnly) client.receive(); 90 assertEquals(ExchangeStatus.DONE, me.getStatus()); 91 92 rec.getMessageList().assertMessagesReceived(1); 93 } 94 95 } 96 | Popular Tags |