Author: asankaa Date: Sun May 3 23:17:34 2009 New Revision: 34756 URL: http://wso2.org/svn/browse/wso2?view=rev&revision=34756
Log: Applying the changes made for synapse trunk revision 771192. Modified: branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/filters/TopicBasedEventFilter.java branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java Modified: branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java?rev=34756&r1=34755&r2=34756&view=diff ============================================================================== --- branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java (original) +++ branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java Sun May 3 23:17:34 2009 @@ -192,7 +192,8 @@ public void run() { try { - Event<org.apache.synapse.MessageContext> event = new Event(synCtx); + MessageContext msgCtx = ((Axis2MessageContext) synCtx).getAxis2MessageContext(); + Event<MessageContext> event = new Event(msgCtx); subscriptions = subscriptionManager.getMatchingSubscriptions(event); } catch (EventException e) { handleException("Matching subscriptions fetching error", e); Modified: branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/filters/TopicBasedEventFilter.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/filters/TopicBasedEventFilter.java?rev=34756&r1=34755&r2=34756&view=diff ============================================================================== --- branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/filters/TopicBasedEventFilter.java (original) +++ branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/filters/TopicBasedEventFilter.java Sun May 3 23:17:34 2009 @@ -19,19 +19,27 @@ package org.apache.synapse.eventing.filters; -import org.apache.synapse.MessageContext; +import org.apache.axis2.context.MessageContext; import org.apache.synapse.util.xpath.SynapseXPath; +import org.apache.synapse.SynapseException; +import org.apache.axiom.om.xpath.AXIOMXPath; +import org.apache.axiom.om.OMElement; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.wso2.eventing.EventFilter; import org.wso2.eventing.Event; +import org.wso2.eventing.exceptions.EventException; +import org.jaxen.JaxenException; /** * Topic baed event filter that match the subscription based on a given topic */ public class TopicBasedEventFilter implements EventFilter<MessageContext> { - private SynapseXPath sourceXpath; + private AXIOMXPath sourceXpath; private String resultValue; private static final String FILTER_SEP = "/"; + private static final Log log = LogFactory.getLog(TopicBasedEventFilter.class); public String getResultValue() { return resultValue; @@ -45,7 +53,7 @@ return resultValue; } - public SynapseXPath getSourceXpath() { + public AXIOMXPath getSourceXpath() { return sourceXpath; } @@ -55,12 +63,31 @@ public boolean match(Event<MessageContext> event) { MessageContext messageContext = event.getMessage(); - String evaluatedValue = sourceXpath.stringValueOf(messageContext); + String evaluatedValue=null; + try { + OMElement topicNode = (OMElement) sourceXpath.selectSingleNode(messageContext.getEnvelope()); + if (topicNode != null) { + evaluatedValue = topicNode.getText(); + } + } catch (JaxenException e) { + handleException("Error creating topic xpath",e); + } + if (evaluatedValue!=null){ if (evaluatedValue.equals(resultValue)) { return true; } else if (evaluatedValue.startsWith((resultValue + FILTER_SEP).trim())) { return true; } + } return false; } + private void handleException(String message) { + log.error(message); + throw new SynapseException(message); + } + + private void handleException(String message, Exception e) { + log.error(message, e); + throw new SynapseException(message, e); + } } \ No newline at end of file Modified: branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java?rev=34756&r1=34755&r2=34756&view=diff ============================================================================== --- branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java (original) +++ branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java Sun May 3 23:17:34 2009 @@ -21,7 +21,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.synapse.MessageContext; +import org.apache.axis2.context.MessageContext; import org.apache.synapse.SynapseException; import org.apache.synapse.eventing.SynapseEventingConstants; import org.apache.synapse.eventing.filters.TopicBasedEventFilter; _______________________________________________ Esb-java-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
