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
