[esb-java-dev] svn commit r24664 - in branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing: . builders
asankaa at wso2.com
asankaa at wso2.com
Sun Nov 23 22:50:24 PST 2008
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);
More information about the Esb-java-dev
mailing list