Author: asankaa Date: Sun Nov 23 11:03:24 2008 New Revision: 24632 URL: http://wso2.org/svn/browse/wso2?view=rev&revision=24632
Log: unsunscribe request handling, modify the sample to send unsubscribe requests Modified: branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/EventSource.java branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java branches/synapse/1.2.wso2v1/modules/samples/src/main/java/samples/userguide/EventSubscriber.java branches/synapse/1.2.wso2v1/modules/samples/src/main/scripts/build.xml Modified: branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/EventSource.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/EventSource.java?rev=24632&r1=24631&r2=24632&view=diff ============================================================================== --- branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/EventSource.java (original) +++ branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/EventSource.java Sun Nov 23 11:03:24 2008 @@ -113,6 +113,8 @@ endpoint.send(MessageHelper.cloneMessageContext(rmc)); } else if (EventingConstants.WSE_UNSUBSCRIBE.equals(mc.getWSAAction())) { // Unsubscribe for responce + Subscription subscription = SubscriptionMessageBuilder.createUnSubscribeMessage(smc); + subscriptionManager.deleteSubscription(subscription.getId()); } else if (EventingConstants.WSE_GET_STATUS.equals(mc.getWSAAction())) { // Get responce status } else if (EventingConstants.WSE_RENEW.equals(mc.getWSAAction())) { 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=24632&r1=24631&r2=24632&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 Nov 23 11:03:24 2008 @@ -122,8 +122,11 @@ * @param mc * @return */ - public Subscription createUnSubscribeMessage(MessageContext mc){ + public static Subscription createUnSubscribeMessage(MessageContext mc){ Subscription subscription = new Subscription(); + OMElement elem = mc.getEnvelope().getHeader().getFirstChildWithName(IDENTIFIER); + String id = (String) elem.getText(); + subscription.setId(id); return subscription; } } Modified: branches/synapse/1.2.wso2v1/modules/samples/src/main/java/samples/userguide/EventSubscriber.java URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/samples/src/main/java/samples/userguide/EventSubscriber.java?rev=24632&r1=24631&r2=24632&view=diff ============================================================================== --- branches/synapse/1.2.wso2v1/modules/samples/src/main/java/samples/userguide/EventSubscriber.java (original) +++ branches/synapse/1.2.wso2v1/modules/samples/src/main/java/samples/userguide/EventSubscriber.java Sun Nov 23 11:03:24 2008 @@ -30,7 +30,6 @@ import org.apache.axis2.context.ConfigurationContextFactory; import java.io.File; -import java.util.Date; public class EventSubscriber { @@ -62,7 +61,8 @@ String repo = getProperty("repository", "client_repo"); String topic = getProperty("topic", "wso2/event/test"); String address = getProperty("address", "http://localhost:9000/soap/SimpleStockQuoteService"); - + String mode = getProperty("mode", "subscribe"); + String identifier = getProperty("identifier", "90000"); if (repo != null && !"null".equals(repo)) { configContext = @@ -81,39 +81,83 @@ OMNamespace nswsa = factory.createOMNamespace("http://schemas.xmlsoap.org/ws/2004/08/addressing", "wsa"); OMNamespace nswse = factory.createOMNamespace("http://schemas.xmlsoap.org/ws/2004/08/eventing", "wse"); + if (mode.equals("subscribe")) { + OMElement subscribeOm = factory.createOMElement("Subscribe", nswse); + OMElement deliveryOm = factory.createOMElement("Delivery", nswse); + deliveryOm.addAttribute(factory.createOMAttribute("Mode", null, "http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push")); + OMElement notifyToOm = factory.createOMElement("NotifyTo", nswse); + OMElement addressOm = factory.createOMElement("Address", nswsa); + factory.createOMText(addressOm, address); + OMElement expiresOm = factory.createOMElement("Expires", nswse); + factory.createOMText(expiresOm, "2008-12-26T21:07:00.000-08:00"); + OMElement filterOm = factory.createOMElement("Filter", nswse); + filterOm.addAttribute(factory.createOMAttribute("Dialect", null, "http://synapse.apache.org/eventing/dialect/topicFilter")); + factory.createOMText(filterOm, topic); + + + notifyToOm.addChild(addressOm); + deliveryOm.addChild(notifyToOm); + subscribeOm.addChild(deliveryOm); + subscribeOm.addChild(expiresOm); + subscribeOm.addChild(filterOm); + + // set addressing, transport and proxy url + + serviceClient.engageModule("addressing"); + options.setTo(new EndpointReference(addUrl)); + + options.setAction("http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"); + serviceClient.setOptions(options); + System.out.println("Subscribing \n" + subscribeOm.toString()); + OMElement response = serviceClient.sendReceive(subscribeOm); + System.out.println("Subscribed to topic " + topic); + Thread.sleep(1000); + System.out.println("Response Received: " + response.toString()); + } else if (mode.equals("unsubscribe")) { + /** Send unsubscribe message + (01) <s12:Envelope + (02) xmlns:s12="http://www.w3.org/2003/05/soap-envelope" + (03) xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" + (04) xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing" + (05) xmlns:ow="http://www.example.org/oceanwatch" > + (06) <s12:Header> + (07) <wsa:Action> + (08) http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe + (09) </wsa:Action> + (10) <wsa:MessageID> + (11) uuid:2653f89f-25bc-4c2a-a7c4-620504f6b216 + (12) </wsa:MessageID> + (13) <wsa:ReplyTo> + (14) <wsa:Address>http://www.example.com/MyEventSink</wsa:Address> + (15) </wsa:ReplyTo> + (16) <wsa:To> + (17) http://www.example.org/oceanwatch/SubscriptionManager + (18) </wsa:To> + (19) <wse:Identifier> + (20) uuid:22e8a584-0d18-4228-b2a8-3716fa2097fa + (21) </wse:Identifier> + (22) </s12:Header> + (23) <s12:Body> + (24) <wse:Unsubscribe /> + (25) </s12:Body> + (26) </s12:Envelope>*/ + OMElement subscribeOm = factory.createOMElement("Unsubscribe", nswse); + + serviceClient.engageModule("addressing"); + options.setTo(new EndpointReference(addUrl)); + + options.setAction("http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe"); + OMElement identifierOm = factory.createOMElement("Identifier", nswse); + factory.createOMText(identifierOm, identifier); + serviceClient.addHeader(identifierOm); + serviceClient.setOptions(options); + System.out.println("UnSubscribing \n" + subscribeOm.toString()); + OMElement response = serviceClient.sendReceive(subscribeOm); + System.out.println("UnSubscribed to ID " + identifier); + Thread.sleep(5000); + System.out.println("Un Subscribe Response Received: " + response.toString()); - OMElement subscribeOm = factory.createOMElement("Subscribe", nswse); - OMElement deliveryOm = factory.createOMElement("Delivery", nswse); - deliveryOm.addAttribute(factory.createOMAttribute("Mode", null, "http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push")); - OMElement notifyToOm = factory.createOMElement("NotifyTo", nswse); - OMElement addressOm = factory.createOMElement("Address", nswsa); - factory.createOMText(addressOm, address); - OMElement expiresOm = factory.createOMElement("Expires", nswse); - factory.createOMText(expiresOm, "2008-12-26T21:07:00.000-08:00"); - OMElement filterOm = factory.createOMElement("Filter", nswse); - filterOm.addAttribute(factory.createOMAttribute("Dialect", null, "http://synapse.apache.org/eventing/dialect/topicFilter")); - factory.createOMText(filterOm, topic); - - - notifyToOm.addChild(addressOm); - deliveryOm.addChild(notifyToOm); - subscribeOm.addChild(deliveryOm); - subscribeOm.addChild(expiresOm); - subscribeOm.addChild(filterOm); - - // set addressing, transport and proxy url - - serviceClient.engageModule("addressing"); - options.setTo(new EndpointReference(addUrl)); - - options.setAction("http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"); - serviceClient.setOptions(options); - System.out.println("Subscribing \n"+subscribeOm.toString()); - //serviceClient.sendRobust(subscribeOm); - OMElement response = serviceClient.sendReceive(subscribeOm); - System.out.println("Subscribed to topic "+topic); - Thread.sleep(5000); - System.out.println("Response Received: " + response.toString()); + } try { if (configContext != null) { Modified: branches/synapse/1.2.wso2v1/modules/samples/src/main/scripts/build.xml URL: http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/samples/src/main/scripts/build.xml?rev=24632&r1=24631&r2=24632&view=diff ============================================================================== --- branches/synapse/1.2.wso2v1/modules/samples/src/main/scripts/build.xml (original) +++ branches/synapse/1.2.wso2v1/modules/samples/src/main/scripts/build.xml Sun Nov 23 11:03:24 2008 @@ -65,7 +65,7 @@ ant fixclient A client which could post a FIX message (of type Order-Single) embedded into a SOAP message. - example: + example: ant fixclient -Dsymbol=IBM -Dqty=5 -Dmode=buy -Daddurl=http://localhost:8280/soap/FIXProxy </echo> </target> @@ -95,6 +95,8 @@ <property name="address" value=""/> <property name="action" value=""/> <property name="topicns" value=""/> + <property name="mode" value=""/> + <property name="identifier" value=""/> <target name="clean"> <delete dir="target" quiet="true"/> @@ -173,6 +175,8 @@ <sysproperty key="topic" value="${topic}"/> <sysproperty key="address" value="${address}"/> <sysproperty key="repository" value="${repository}"/> + <sysproperty key="mode" value="${mode}"/> + <sysproperty key="identifier" value="${identifier}"/> <sysproperty key="java.io.tmpdir" value="./../../work/temp/sampleClient"/> </java> </target> _______________________________________________ Esb-java-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev
