Author: asankaa
Date: Thu Nov 27 22:38:54 2008
New Revision: 25165
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=25165

Log:
refactor by removing the duplicate code 


Modified:
   
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java

Modified: 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java?rev=25165&r1=25164&r2=25165&view=diff
==============================================================================
--- 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java
  (original)
+++ 
branches/synapse/1.2.wso2v1/modules/core/src/main/java/org/apache/synapse/eventing/SynapseEventSource.java
  Thu Nov 27 22:38:54 2008
@@ -118,36 +118,14 @@
                     log.debug("Sending sunscription response for 
SynapseSubscription ID : " + subscription.getId());
                 }
                 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.setWSAAction(EventingConstants.WSE_SUbSCRIBE_RESPONSE);  
//TODO: headers dose not set, repsonce carry the original message header
-                rmc.setSoapAction(EventingConstants.WSE_SUbSCRIBE_RESPONSE);
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSE_SUbSCRIBE_RESPONSE,null,mc,synCfg,synEnv);
             } else {
                 // Send the Fault responce
                 if (log.isDebugEnabled()) {
                     log.debug("SynapseSubscription Failed, sending fault 
response");
                 }
                 SOAPEnvelope soapEnvelope = 
messageBuilder.genFaultResponse(EventingConstants.WSE_FAULT_CODE_RECEIVER, 
"wse:EventSourceUnableToProcess", "", "");
-                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.setWSAAction(EventingConstants.WSA_FAULT);
-                rmc.setSoapAction(EventingConstants.WSA_FAULT);
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSA_FAULT,null,mc,synCfg,synEnv);
             }
         } else if 
(EventingConstants.WSE_UNSUBSCRIBE.equals(mc.getWSAAction())) {
             // Unsubscribe for responce
@@ -161,38 +139,15 @@
                     log.debug("Sending UnSubscribe responce for 
SynapseSubscription ID : " + subscription.getId());
                 }
                 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.setWSAAction(EventingConstants.WSE_UNSUBSCRIBE_RESPONSE);
-                rmc.setSoapAction(EventingConstants.WSE_UNSUBSCRIBE_RESPONSE);
                 RelatesTo relatesTo = new RelatesTo(subscription.getId());
-                rmc.setRelatesTo(new RelatesTo[]{relatesTo});
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSE_UNSUBSCRIBE_RESPONSE,relatesTo,mc,synCfg,synEnv);
             } else {
                 // Send the Fault responce
                 if (log.isDebugEnabled()) {
                     log.debug("UnSubscription failed, sending fault 
repsponse");
                 }
                 SOAPEnvelope soapEnvelope = 
messageBuilder.genFaultResponse(EventingConstants.WSE_FAULT_CODE_RECEIVER, 
"wse:EventSourceUnableToProcess", "", "");
-                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.setWSAAction(EventingConstants.WSA_FAULT);
-                rmc.setSoapAction(EventingConstants.WSA_FAULT);
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSA_FAULT,null,mc,synCfg,synEnv);
             }
         } else if (EventingConstants.WSE_GET_STATUS.equals(mc.getWSAAction())) 
{
             // Get responce status
@@ -207,38 +162,15 @@
                 }
                 //send the responce
                 SOAPEnvelope soapEnvelope = 
messageBuilder.genGetStatusResponse(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.setWSAAction(EventingConstants.WSE_GET_STATUS_RESPONSE);
-                rmc.setSoapAction(EventingConstants.WSE_GET_STATUS_RESPONSE);
                 RelatesTo relatesTo = new RelatesTo(subscription.getId());
-                rmc.setRelatesTo(new RelatesTo[]{relatesTo});
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSE_GET_STATUS_RESPONSE,relatesTo,mc,synCfg,synEnv);
             } else {
                 // Send the Fault responce
                 if (log.isDebugEnabled()) {
                     log.debug("GetStatus failed, sending fault response");
                 }
                 SOAPEnvelope soapEnvelope = 
messageBuilder.genFaultResponse(EventingConstants.WSE_FAULT_CODE_RECEIVER, 
"wse:EventSourceUnableToProcess", "", "");
-                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.setWSAAction(EventingConstants.WSA_FAULT);
-                rmc.setSoapAction(EventingConstants.WSA_FAULT);
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSA_FAULT,null,mc,synCfg,synEnv);
             }
         } else if (EventingConstants.WSE_RENEW.equals(mc.getWSAAction())) {
             // Renew subscription
@@ -252,38 +184,15 @@
                     log.debug("Sending ReNew response for SynapseSubscription 
ID : " + subscription.getId());
                 }
                 SOAPEnvelope soapEnvelope = 
messageBuilder.genRenewSubscriptionResponse(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.setWSAAction(EventingConstants.WSE_RENEW_RESPONSE);
-                rmc.setSoapAction(EventingConstants.WSE_RENEW_RESPONSE);
                 RelatesTo relatesTo = new RelatesTo(subscription.getId());
-                rmc.setRelatesTo(new RelatesTo[]{relatesTo});
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSE_RENEW_RESPONSE,relatesTo,mc,synCfg,synEnv);
             } else {
                 // Send the Fault responce
                 if (log.isDebugEnabled()) {
                     log.debug("ReNew failed, sending fault response");
                 }
                 SOAPEnvelope soapEnvelope = 
messageBuilder.genFaultResponse(EventingConstants.WSE_FAULT_CODE_RECEIVER, 
"wse:UnableToRenew", "", "");
-                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.setWSAAction(EventingConstants.WSA_FAULT);
-                rmc.setSoapAction(EventingConstants.WSA_FAULT);
-                rmc.setResponse(true);
-                endpoint.send(rmc);
+                dispatchResponse(soapEnvelope, 
EventingConstants.WSA_FAULT,null,mc,synCfg,synEnv);
             }
         } else {
             // Treat as an Event
@@ -301,4 +210,32 @@
             }
         }
     }
+
+    /**
+     * Dispatch the message to the target endpoint
+     * @param soapEnvelope   Soap Enevlop with message
+     * @param responseAction WSE action for the response
+     * @param relatesTo      RelatesTo wsa addressing header
+     * @param mc             Message Context
+     * @param synCfg         Synapse Configuration
+     * @param synEnv         Synapse Enviornment
+     * @throws AxisFault
+     */
+    private void dispatchResponse(SOAPEnvelope soapEnvelope,String 
responseAction,RelatesTo relatesTo,MessageContext mc,SynapseConfiguration 
synCfg,SynapseEnvironment synEnv)throws AxisFault{
+                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.setWSAAction(responseAction);        //TODO wsa headers 
cannot see in the responce message, it drops just before dispatching 
+                rmc.setSoapAction(responseAction);
+                if (relatesTo!=null){
+                    rmc.setRelatesTo(new RelatesTo[]{relatesTo});
+                }
+                rmc.setResponse(true);
+                endpoint.send(rmc);
+    }
 }

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

Reply via email to