1 17 package org.apache.servicemix.components.router; 18 19 import org.apache.servicemix.jbi.resolver.EndpointFilter; 20 import org.apache.servicemix.jbi.resolver.EndpointResolver; 21 import org.apache.servicemix.jbi.resolver.NullEndpointFilter; 22 23 import javax.jbi.JBIException; 24 import javax.jbi.component.ComponentContext; 25 import javax.jbi.messaging.MessageExchange; 26 import javax.jbi.servicedesc.ServiceEndpoint; 27 28 34 public class RoutingRule { 35 private Predicate predicate; 36 private EndpointResolver resolver; 37 private EndpointFilter filter = NullEndpointFilter.getInstance(); 38 39 public EndpointFilter getFilter() { 40 return filter; 41 } 42 43 public void setFilter(EndpointFilter filter) { 44 this.filter = filter; 45 } 46 47 public Predicate getPredicate() { 48 return predicate; 49 } 50 51 public void setPredicate(Predicate predicate) { 52 this.predicate = predicate; 53 } 54 55 public EndpointResolver getResolver() { 56 return resolver; 57 } 58 59 public void setResolver(EndpointResolver resolver) { 60 this.resolver = resolver; 61 } 62 63 public void onMessageExchange(ComponentContext context, MessageExchange exchange) throws JBIException { 64 if (predicate.evaluate(context, exchange)) { 65 66 ServiceEndpoint endpoint = resolver.resolveEndpoint(context, exchange, filter); 68 exchange.setEndpoint(endpoint); 69 } 70 } 71 72 73 } 74 | Popular Tags |