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
