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
