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

Reply via email to