[esb-java-dev] svn commit r24634 - 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 12:15:05 PST 2008
Author: asankaa
Date: Sun Nov 23 12:15:04 2008
New Revision: 24634
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=24634
Log:
unsubscribe responce message and wsa:Action set to the responces
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
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=24634&r1=24633&r2=24634&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 12:15:04 2008
@@ -105,11 +105,13 @@
String replyAddress = mc.getOptions().getReplyTo().getAddress();
AddressEndpoint endpoint = new AddressEndpoint();
EndpointDefinition def = new EndpointDefinition();
- def.setAddress(replyAddress.trim());
+ def.setAddress(replyAddress.trim());
endpoint.setDefinition(def);
org.apache.synapse.MessageContext rmc = new Axis2MessageContext(mc, synCfg, synEnv);
- rmc.setTo(new EndpointReference(replyAddress));
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));
} else if (EventingConstants.WSE_UNSUBSCRIBE.equals(mc.getWSAAction())) {
// Unsubscribe for responce
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=24634&r1=24633&r2=24634&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 12:15:04 2008
@@ -1,19 +1,18 @@
package org.apache.synapse.eventing.builders;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.synapse.eventing.Subscription;
-import org.apache.synapse.SynapseException;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.addressing.EndpointReferenceHelper;
-import org.apache.axis2.addressing.AddressingConstants;
-import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.eventing.Subscription;
import org.wso2.eventing.EventingConstants;
import javax.xml.namespace.QName;
@@ -39,40 +38,75 @@
public class ResponseMessageBuilder {
private SOAPFactory factory;
private static final Log log = LogFactory.getLog(ResponseMessageBuilder.class);
- public ResponseMessageBuilder(MessageContext messageCtx){
+
+ public ResponseMessageBuilder(MessageContext messageCtx) {
factory = (SOAPFactory) messageCtx.getEnvelope().getOMFactory();
//factory =(SOAPFactory) OMAbstractFactory.getOMFactory();
}
/**
+ * (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:ew="http://www.example.com/warnings"
+ * (06) xmlns:ow="http://www.example.org/oceanwatch" >
+ * (07) <s12:Header>
+ * (08) <wsa:Action>
+ * (09) http://schemas.xmlsoap.org/ws/2004/08/eventing/SubscribeResponse
+ * (10) </wsa:Action>
+ * (11) <wsa:RelatesTo>
+ * (12) uuid:e1886c5c-5e86-48d1-8c77-fc1c28d47180
+ * (13) </wsa:RelatesTo>
+ * (14) <wsa:To>http://www.example.com/MyEventSink</wsa:To>
+ * (15) <ew:MySubscription>2597</ew:MySubscription>
+ * (16) </s12:Header>
+ * (17) <s12:Body>
+ * (18) <wse:SubscribeResponse>
+ * (19) <wse:SubscriptionManager>
+ * (20) <wsa:Address>
+ * (21) http://www.example.org/oceanwatch/SubscriptionManager
+ * (22) </wsa:Address>
+ * (23) <wsa:ReferenceParameters>
+ * (24) <wse:Identifier>
+ * (25) uuid:22e8a584-0d18-4228-b2a8-3716fa2097fa
+ * (26) </wse:Identifier>
+ * (27) </wsa:ReferenceParameters>
+ * (28) </wse:SubscriptionManager>
+ * (29) <wse:Expires>2004-07-01T00:00:00.000-00:00</wse:Expires>
+ * (30) </wse:SubscribeResponse>
+ * (31) </s12:Body>
+ * (32) </s12:Envelope>
* Generate the subscription responce message
+ *
* @param subscription
* @return
*/
- public SOAPEnvelope genSubscriptionResponse(Subscription subscription){
+ public SOAPEnvelope genSubscriptionResponse(Subscription subscription) {
SOAPEnvelope message = factory.getDefaultEnvelope();
EndpointReference subscriptionManagerEPR = new EndpointReference("http://localhost:8280/soap/eventing"); //TODO: add subscription url to subscription object
subscriptionManagerEPR.addReferenceParameter(new QName(EventingConstants.WSE_EVENTING_NS,
- EventingConstants.WSE_EN_IDENTIFIER, EventingConstants.WSE_EVENTING_PREFIX),subscription.getId());
+ EventingConstants.WSE_EN_IDENTIFIER, EventingConstants.WSE_EVENTING_PREFIX), subscription.getId());
OMNamespace eventingNamespace = factory.createOMNamespace(EventingConstants.WSE_EVENTING_NS,
- EventingConstants.WSE_EVENTING_PREFIX);
+ EventingConstants.WSE_EVENTING_PREFIX);
OMElement subscribeResponseElement = factory.createOMElement(EventingConstants.WSE_EN_SUBSCRIBE_RESPONSE, eventingNamespace);
try {
OMElement subscriptionManagerElement = EndpointReferenceHelper.toOM(
- subscribeResponseElement.getOMFactory(),
- subscriptionManagerEPR,
- new QName(EventingConstants.WSE_EVENTING_NS,
- EventingConstants.WSE_EN_SUBSCRIPTION_MANAGER,
- EventingConstants.WSE_EVENTING_PREFIX),
- AddressingConstants.Submission.WSA_NAMESPACE);
- subscribeResponseElement.addChild(subscriptionManagerElement);
- message.getBody().addChild(subscribeResponseElement);
+ subscribeResponseElement.getOMFactory(),
+ subscriptionManagerEPR,
+ new QName(EventingConstants.WSE_EVENTING_NS,
+ EventingConstants.WSE_EN_SUBSCRIPTION_MANAGER,
+ EventingConstants.WSE_EVENTING_PREFIX),
+ AddressingConstants.Submission.WSA_NAMESPACE);
+ subscribeResponseElement.addChild(subscriptionManagerElement);
+ message.getBody().addChild(subscribeResponseElement);
} catch (AxisFault axisFault) {
- handleException("unable to create subscription response",axisFault);
+ handleException("unable to create subscription response", axisFault);
}
return message;
}
- private void handleException(String message) {
+
+ private void handleException(String message) {
log.error(message);
throw new SynapseException(message);
}
@@ -81,4 +115,47 @@
log.error(message, e);
throw new SynapseException(message, e);
}
+
+ /**
+ * (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) <s12:Header>
+ * (05) <wsa:Action>
+ * (06) http://schemas.xmlsoap.org/ws/2004/08/eventing/UnsubscribeResponse
+ * (07) </wsa:Action>
+ * (08) <wsa:RelatesTo>
+ * (09) uuid:2653f89f-25bc-4c2a-a7c4-620504f6b216
+ * (10) </wsa:RelatesTo>
+ * (11) <wsa:To>http://www.example.com/MyEventSink</wsa:To>
+ * (12) </s12:Header>
+ * (13) <s12:Body />
+ * (14) </s12:Envelope>
+ *
+ * @param subscription
+ * @return
+ */
+ public SOAPEnvelope genUnSubscribeResponse(Subscription subscription) {
+ SOAPEnvelope message = factory.getDefaultEnvelope();
+ EndpointReference subscriptionManagerEPR = new EndpointReference("http://localhost:8280/soap/eventing"); //TODO: add subscription url to subscription object
+ subscriptionManagerEPR.addReferenceParameter(new QName(EventingConstants.WSE_EVENTING_NS,
+ EventingConstants.WSE_EN_IDENTIFIER, EventingConstants.WSE_EVENTING_PREFIX), subscription.getId());
+ OMNamespace eventingNamespace = factory.createOMNamespace(EventingConstants.WSE_EVENTING_NS,
+ EventingConstants.WSE_EVENTING_PREFIX);
+ OMElement subscribeResponseElement = factory.createOMElement(EventingConstants.WSE_EN_UNSUBSCRIBE, eventingNamespace);
+ try {
+ OMElement subscriptionManagerElement = EndpointReferenceHelper.toOM(
+ subscribeResponseElement.getOMFactory(),
+ subscriptionManagerEPR,
+ new QName(EventingConstants.WSE_EVENTING_NS,
+ EventingConstants.WSE_EN_SUBSCRIPTION_MANAGER,
+ EventingConstants.WSE_EVENTING_PREFIX),
+ AddressingConstants.Submission.WSA_NAMESPACE);
+ subscribeResponseElement.addChild(subscriptionManagerElement);
+ message.getBody().addChild(subscribeResponseElement);
+ } catch (AxisFault axisFault) {
+ handleException("unable to create subscription response", axisFault);
+ }
+ return message;
+ }
}
More information about the Esb-java-dev
mailing list