Author: asankaa
Date: Sun Nov 23 22:50:23 2008
New Revision: 24664
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=24664

Log:
unsubscribe responce - set the headers before sending to wse-


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/ResponseMessageBuilder.java
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/SubscriptionMessageBuilder.java

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=24664&r1=24663&r2=24664&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 22:50:23 2008
@@ -88,6 +88,7 @@
 
     /**
      * Override the Message reciver method to accept subscriptions and events
+     *
      * @param mc
      * @throws AxisFault
      */
@@ -97,26 +98,48 @@
         SynapseEnvironment synEnv = (SynapseEnvironment) 
mc.getConfigurationContext()
                 
.getAxisConfiguration().getParameter(SynapseConstants.SYNAPSE_ENV).getValue();
         org.apache.synapse.MessageContext smc = new Axis2MessageContext(mc, 
synCfg, synEnv);
+        ResponseMessageBuilder messageBuilder = new ResponseMessageBuilder(mc);
         if (EventingConstants.WSE_SUBSCRIBE.equals(mc.getWSAAction())) {
+            // add new subscription to the Subscription store through 
subscription manager
             Subscription subscription = 
SubscriptionMessageBuilder.createSubscription(smc);
-            subscriptionManager.addSubscription(subscription);
-            ResponseMessageBuilder messageBuilder = new 
ResponseMessageBuilder(mc);
-            SOAPEnvelope soapEnvelope = 
messageBuilder.genSubscriptionResponse(subscription);
-            String replyAddress = mc.getOptions().getReplyTo().getAddress();
-            AddressEndpoint endpoint = new AddressEndpoint();
-            EndpointDefinition def = new EndpointDefinition();
-            def.setAddress(replyAddress.trim());            
-            endpoint.setDefinition(def);
-            org.apache.synapse.MessageContext rmc = new 
Axis2MessageContext(mc, synCfg, synEnv);
-            rmc.setEnvelope(soapEnvelope);
-            rmc.setTo(new EndpointReference(replyAddress));
-            rmc.setSoapAction(EventingConstants.WSE_SUbSCRIBE_RESPONSE);
-            rmc.setWSAAction(EventingConstants.WSE_SUbSCRIBE_RESPONSE);
-            endpoint.send(MessageHelper.cloneMessageContext(rmc));
+            String subID = subscriptionManager.addSubscription(subscription);
+            if (subID != null) {
+                // Send the subscription responce
+                SOAPEnvelope soapEnvelope = 
messageBuilder.genSubscriptionResponse(subscription);
+                String replyAddress = 
mc.getOptions().getReplyTo().getAddress();
+                AddressEndpoint endpoint = new AddressEndpoint();
+                EndpointDefinition def = new EndpointDefinition();
+                def.setAddress(replyAddress.trim());
+                endpoint.setDefinition(def);
+                org.apache.synapse.MessageContext rmc = new 
Axis2MessageContext(mc, synCfg, synEnv);
+                rmc.setEnvelope(soapEnvelope);
+                rmc.setTo(new EndpointReference(replyAddress));
+                rmc.setSoapAction(EventingConstants.WSE_SUbSCRIBE_RESPONSE); 
//TODO: none of these responces get set in the the header need to look at a 
deep drive
+                rmc.setWSAAction(EventingConstants.WSE_SUbSCRIBE_RESPONSE);
+                endpoint.send(MessageHelper.cloneMessageContext(rmc));
+            } else {
+                //TODO: send the fault message  
+            }
         } else if 
(EventingConstants.WSE_UNSUBSCRIBE.equals(mc.getWSAAction())) {
             // Unsubscribe for responce
             Subscription subscription = 
SubscriptionMessageBuilder.createUnSubscribeMessage(smc);
-            subscriptionManager.deleteSubscription(subscription.getId());
+            if (subscriptionManager.deleteSubscription(subscription.getId())) {
+                //send the response
+                SOAPEnvelope soapEnvelope = 
messageBuilder.genUnSubscribeResponse(subscription);
+                String replyAddress = 
mc.getOptions().getReplyTo().getAddress();
+                AddressEndpoint endpoint = new AddressEndpoint();
+                EndpointDefinition def = new EndpointDefinition();
+                def.setAddress(replyAddress.trim());
+                endpoint.setDefinition(def);
+                org.apache.synapse.MessageContext rmc = new 
Axis2MessageContext(mc, synCfg, synEnv);
+                rmc.setEnvelope(soapEnvelope);
+                rmc.setTo(new EndpointReference(replyAddress));
+                rmc.setSoapAction(EventingConstants.WSE_UNSUBSCRIBE_RESPONSE); 
//TODO: none of these responces get set in the the header need to look at a 
deep drive
+                rmc.setWSAAction(EventingConstants.WSE_UNSUBSCRIBE_RESPONSE);
+                endpoint.send(MessageHelper.cloneMessageContext(rmc));         
       
+            } else {
+                //TODO: send the fault message
+            }
         } 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/ResponseMessageBuilder.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/ResponseMessageBuilder.java?rev=24664&r1=24663&r2=24664&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/ResponseMessageBuilder.java
     (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/builders/ResponseMessageBuilder.java
     Sun Nov 23 22:50:23 2008
@@ -152,7 +152,7 @@
                             EventingConstants.WSE_EVENTING_PREFIX),
                     AddressingConstants.Submission.WSA_NAMESPACE);
             subscribeResponseElement.addChild(subscriptionManagerElement);
-            message.getBody().addChild(subscribeResponseElement);
+            //message.getBody().addChild(subscribeResponseElement);            
         } catch (AxisFault axisFault) {
             handleException("unable to create subscription response", 
axisFault);
         }

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=24664&r1=24663&r2=24664&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 22:50:23 2008
@@ -52,10 +52,10 @@
     private static final QName ATT_XPATH        = new 
QName(XMLConfigConstants.NULL_NAMESPACE, EventingConstants.WSE_EN_XPATH);
     private static final QName IDENTIFIER       = new 
QName(EventingConstants.WSE_EVENTING_NS, EventingConstants.WSE_EN_IDENTIFIER);
     public static Subscription createSubscription(MessageContext mc) {
+        //TODO: add expiration time
         Subscription subscription = null;
         OMElement elem = 
mc.getEnvelope().getBody().getFirstChildWithName(SUBSCRIBE_QNAME);
         if (elem != null) {
-
             OMElement deliveryElem = 
elem.getFirstChildWithName(DELIVERY_QNAME);
             if (deliveryElem != null) {
                 OMElement notifyToElem = 
deliveryElem.getFirstChildWithName(NOTIFY_TO_QNAME);

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

Reply via email to