Author: asankaa
Date: Sun Dec 21 09:08:39 2008
New Revision: 27518
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=27518

Log:
Fixing  CARBON-1693 and  CARBON-1694


Modified:
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceFactory.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceSerializer.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventingConstants.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscription.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscriptionManager.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceFactory.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceFactory.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceFactory.java
       (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceFactory.java
       Sun Dec 21 09:08:39 2008
@@ -34,6 +34,7 @@
 import org.apache.synapse.eventing.SynapseSubscriptionManager;
 import org.apache.synapse.eventing.filters.XPathBasedEventFilter;
 import org.apache.axis2.databinding.utils.ConverterUtil;
+import org.wso2.eventing.SubscriptionData;
 
 import javax.xml.namespace.QName;
 import java.util.Iterator;
@@ -149,7 +150,12 @@
                         handleException("Error in creating static 
subscription. Filter source not defined");
                     }
                     synapseSubscription.setFilter(filter);
+                    SubscriptionData subscriptionData = new SubscriptionData();
+                    
subscriptionData.setProperty(SynapseEventingConstants.FILTER_VALUE,sourceAttr.getAttributeValue());
+                    
subscriptionData.setProperty(SynapseEventingConstants.FILTER_DIALECT,dialectAttr.getAttributeValue());
+                    synapseSubscription.setSubscriptionData(subscriptionData);
                 }
+
             } else {
                 handleException("Error in creating static subscription. Filter 
dialect not defined");
             }
@@ -164,6 +170,8 @@
                 def.setAddress(uriAttr.getAttributeValue());
                 endpoint.setDefinition(def);
                 synapseSubscription.setEndpoint(endpoint);
+                
synapseSubscription.setEndpointUrl(uriAttr.getAttributeValue());
+                synapseSubscription.setAddressUrl(uriAttr.getAttributeValue());
                 }else{
                     handleException("Error in creating static subscription. 
URI not defined");
                 }
@@ -184,6 +192,7 @@
             }else{
                 synapseSubscription.setExpires(null);
             }
+            synapseSubscription.setStaticEntry(true);
             
synapseEventSource.getSubscriptionManager().addSubscription(synapseSubscription);
         }
     }

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceSerializer.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceSerializer.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceSerializer.java
    (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/config/xml/eventing/EventSourceSerializer.java
    Sun Dec 21 09:08:39 2008
@@ -25,6 +25,12 @@
 import org.apache.axiom.om.OMNamespace;
 import org.apache.synapse.config.xml.XMLConfigConstants;
 import org.apache.synapse.eventing.SynapseEventSource;
+import org.apache.synapse.eventing.SynapseSubscription;
+import org.apache.synapse.eventing.SynapseEventingConstants;
+import org.apache.axis2.databinding.utils.ConverterUtil;
+
+import java.util.List;
+import java.util.Iterator;
 
 /**
  * <eventSource name="blah">
@@ -61,6 +67,29 @@
                 subManagerElem.addChild(propElem);
             }
             evenSourceElem.addChild(subManagerElem);
+            // Adding static subscriptions
+            List<SynapseSubscription> staticSubscriptionList 
=eventSource.getSubscriptionManager().getStaticSubscribers();
+            for(Iterator<SynapseSubscription> iterator = 
staticSubscriptionList.iterator();iterator.hasNext();){
+                SynapseSubscription staticSubscription = iterator.next();
+                OMElement staticSubElem = fac.createOMElement("subscription", 
XMLConfigConstants.SYNAPSE_OMNAMESPACE);
+                
staticSubElem.addAttribute(fac.createOMAttribute("id",nullNS,staticSubscription.getId()));
+                OMElement filterElem = fac.createOMElement("filter", 
XMLConfigConstants.SYNAPSE_OMNAMESPACE);
+                
filterElem.addAttribute(fac.createOMAttribute("source",nullNS,(String)staticSubscription.getSubscriptionData().getProperty(SynapseEventingConstants.FILTER_VALUE)));
+                
filterElem.addAttribute(fac.createOMAttribute("dialect",nullNS,(String)staticSubscription.getSubscriptionData().getProperty(SynapseEventingConstants.FILTER_DIALECT)));
+                staticSubElem.addChild(filterElem);
+                OMElement endpointElem = fac.createOMElement("endpoint", 
XMLConfigConstants.SYNAPSE_OMNAMESPACE);
+                OMElement addressElem = fac.createOMElement("address", 
XMLConfigConstants.SYNAPSE_OMNAMESPACE);
+                
addressElem.addAttribute(fac.createOMAttribute("uri",nullNS,staticSubscription.getEndpointUrl()));
+                endpointElem.addChild(addressElem);
+                staticSubElem.addChild(endpointElem);
+                if(staticSubscription.getExpires()!=null){
+                    OMElement expiresElem = fac.createOMElement("expires", 
XMLConfigConstants.SYNAPSE_OMNAMESPACE);
+                    fac.createOMText(expiresElem, 
ConverterUtil.convertToString(staticSubscription.getExpires()));
+                    staticSubElem.addChild(expiresElem);
+                }
+                evenSourceElem.addChild(staticSubElem);
+            }
+
         }
 
         if (elem != null) {

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventingConstants.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventingConstants.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventingConstants.java
    (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventingConstants.java
    Sun Dec 21 09:08:39 2008
@@ -24,4 +24,6 @@
  */
 public class SynapseEventingConstants {
     public static final String TOPIC_FILTER_DIALECT = 
"http://synapse.apache.org/eventing/dialect/topicFilter";;
+    public static final String FILTER_VALUE = "filter";
+    public static final String FILTER_DIALECT = "dialect";
 }

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscription.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscription.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscription.java
 (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscription.java
 Sun Dec 21 09:08:39 2008
@@ -33,10 +33,11 @@
 
     private SynapseEventFilter filter;
     private Endpoint endpoint;
-
+    private boolean staticEntry;
     public SynapseSubscription() {
         this.setId(UUIDGenerator.getUUID());
         this.setDeliveryMode(EventingConstants.WSE_DEFAULT_DELIVERY_MODE);
+        this.setStaticEntry(false);
     }
 
     public SynapseSubscription(String deliveryMode) {
@@ -59,4 +60,12 @@
     public void setEndpoint(Endpoint endpoint) {
         this.endpoint = endpoint;
     }
+
+    public boolean isStaticEntry() {
+        return staticEntry;
+    }
+
+    public void setStaticEntry(boolean staticEntry) {
+        this.staticEntry = staticEntry;
+    }
 }

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscriptionManager.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscriptionManager.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscriptionManager.java
  (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseSubscriptionManager.java
  Sun Dec 21 09:08:39 2008
@@ -35,6 +35,8 @@
 
     public abstract List<SynapseSubscription> 
getMatchingSubscribers(MessageContext mc);
 
+    public abstract List<SynapseSubscription> getStaticSubscribers();
+
     public abstract SynapseSubscription getSubscription(String id);
 
     public abstract String addSubscription(SynapseSubscription subs);

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
 (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java
 Sun Dec 21 09:08:39 2008
@@ -37,6 +37,7 @@
 import org.apache.synapse.util.xpath.SynapseXPath;
 import org.jaxen.JaxenException;
 import org.wso2.eventing.EventingConstants;
+import org.wso2.eventing.SubscriptionData;
 
 import javax.xml.namespace.QName;
 import java.util.Calendar;
@@ -154,6 +155,10 @@
                             }
                         }
                         subscription.setFilter(filter);
+                                           SubscriptionData subscriptionData = 
new SubscriptionData();
+                    
subscriptionData.setProperty(SynapseEventingConstants.FILTER_VALUE,filterElem.getText());
+                    
subscriptionData.setProperty(SynapseEventingConstants.FILTER_DIALECT,dialectAttr.getAttributeValue());
+                    subscription.setSubscriptionData(subscriptionData);
                     }
                 } else {
                     handleException("Error in creating subscription. Filter 
dialect not defined");

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java?rev=27518&r1=27517&r2=27518&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java
 (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/managers/DefaultInMemorySubscriptionManager.java
 Sun Dec 21 09:08:39 2008
@@ -110,6 +110,16 @@
                return list;
        }
 
+    public List<SynapseSubscription> getStaticSubscribers() {
+               LinkedList<SynapseSubscription> list = new 
LinkedList<SynapseSubscription>();
+        for (Map.Entry<String, SynapseSubscription> stringSubscriptionEntry : 
store.entrySet()) {
+            if (stringSubscriptionEntry.getValue().isStaticEntry()){
+                list.add(stringSubscriptionEntry.getValue());
+            }
+        }
+               return list;
+    }
+
     @Deprecated
     public String subscribe(Subscription subscription) throws EventException {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.

_______________________________________________
Esb-java-dev mailing list
[email protected]
https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to