Author: asankha
Date: Tue Feb 13 01:22:01 2007
New Revision: 506919

URL: http://svn.apache.org/viewvc?view=rev&rev=506919
Log:
fix issue where pox forcing to outgoing endpoint was made on the original 
message context. This has now been moved to alter the cloned MC used for the 
sending out, so that the reply message will not be affected

Updated the samples documents and added the sample configs for easy 
understanding. Also fixed some errors in the text


Modified:
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
    
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
    webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_2.xml
    webservices/synapse/trunk/java/src/site/resources/Synapse_Samples.html

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/SynapseEnvironment.java
 Tue Feb 13 01:22:01 2007
@@ -20,6 +20,7 @@
 package org.apache.synapse.core;
 
 import org.apache.synapse.MessageContext;
+import org.apache.synapse.config.Endpoint;
 import org.apache.synapse.statistics.StatisticsCollector;
 
 /**
@@ -40,7 +41,7 @@
      * <p/>
      * This will send request messages on (forward), and send the response 
messages back to the client
      */
-    public void send(MessageContext smc);
+    public void send(Endpoint endpoint, MessageContext smc);
 
     /**
      * Creates a new Synapse <code>MessageContext</code> instance.

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
 Tue Feb 13 01:22:01 2007
@@ -50,6 +50,7 @@
 import org.apache.neethi.PolicyEngine;
 import org.apache.synapse.Constants;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.Endpoint;
 
 /**
  * This is a simple client that handles both in only and in out
@@ -66,23 +67,31 @@
      * 500 internal server error as possible responses. Currently the code 
expects
      * Synchronus operation
      *
-     * @param wsAddressingEnabled
-     * @param wsSecurityEnabled
-     * @param wsSecPolicyKey
-     * @param wsRMEnabled
-     * @param wsRMPolicyKey
+     * @param endpoint
      * @param synapseOutMessageContext
      * @return The Axis2 reponse message context
      */
     public static MessageContext send(
-        boolean wsAddressingEnabled,
-        boolean wsSecurityEnabled,
-        String wsSecPolicyKey,
-        boolean wsRMEnabled,
-        String wsRMPolicyKey,
-        boolean separateListener,
+
+        Endpoint endpoint,
         org.apache.synapse.MessageContext synapseOutMessageContext) throws 
AxisFault {
 
+        boolean separateListener    = false;
+        boolean wsSecurityEnabled   = false;
+        String wsSecPolicyKey       = null;
+        boolean wsRMEnabled         = false;
+        String wsRMPolicyKey        = null;
+        boolean wsAddressingEnabled = false;
+
+        if (endpoint != null) {
+            separateListener    = endpoint.isUseSeparateListener();
+            wsSecurityEnabled   = endpoint.isSecurityOn();
+            wsSecPolicyKey      = endpoint.getWsSecPolicyKey();
+            wsRMEnabled         = endpoint.isReliableMessagingOn();
+            wsRMPolicyKey       = endpoint.getWsRMPolicyKey();
+            wsAddressingEnabled = endpoint.isAddressingOn() || 
wsSecurityEnabled || wsRMEnabled;
+        }
+
         log.debug("sending [add = "+wsAddressingEnabled+"] [sec = 
"+wsSecurityEnabled + "] [ rm = "+wsRMEnabled+"] [ to 
"+synapseOutMessageContext.getTo()+"]");
 
         // save the original message context wihout altering it, so we can tie 
the response
@@ -91,6 +100,24 @@
         // create a new MessageContext to be sent out as this should not 
corrupt the original
         // we need to create the response to the original message later on
         MessageContext axisOutMsgCtx = cloneForSend(originalInMsgCtx);
+
+        if (endpoint != null) {
+            if (endpoint.isForcePOX()) {
+                axisOutMsgCtx.setDoingREST(true);
+            } else if (endpoint.isForceSOAP()) {
+                axisOutMsgCtx.setDoingREST(false);
+            }
+
+            if (endpoint.isUseMTOM()) {
+                axisOutMsgCtx.setDoingMTOM(true);
+            } else if (endpoint.isUseSwa()) {
+                axisOutMsgCtx.setDoingSwA(true);
+            }
+
+            if (endpoint.isUseSeparateListener()) {
+                
axisOutMsgCtx.setProperty(Constants.OUTFLOW_USE_SEPARATE_LISTENER, 
Boolean.TRUE);
+            }
+        }
 
         if (wsAddressingEnabled) {
             
axisOutMsgCtx.setProperty(AddressingConstants.DISABLE_ADDRESSING_FOR_OUT_MESSAGES,
 Boolean.FALSE);

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2Sender.java
 Tue Feb 13 01:22:01 2007
@@ -27,6 +27,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.Constants;
 import org.apache.synapse.SynapseException;
+import org.apache.synapse.config.Endpoint;
 import org.apache.synapse.statistics.StatisticsUtils;
 import org.apache.neethi.Policy;
 import org.apache.axiom.soap.SOAPFault;
@@ -41,43 +42,17 @@
     private static final Log log = LogFactory.getLog(Axis2Sender.class);
 
     public static void sendOn(
+            Endpoint endpoint,
             org.apache.synapse.MessageContext synapseInMessageContext) {
 
         try {
-            Boolean wsAOn = (Boolean) synapseInMessageContext.getProperty(
-                    Constants.OUTFLOW_ADDRESSING_ON);
-            Boolean wsRmOn = (Boolean) synapseInMessageContext.getProperty(
-                    Constants.OUTFLOW_RM_ON);
-            Boolean wsSecOn = (Boolean) synapseInMessageContext.getProperty(
-                    Constants.OUTFLOW_SECURITY_ON);
-            Boolean separateListener = (Boolean) 
synapseInMessageContext.getProperty(
-                    Constants.OUTFLOW_USE_SEPARATE_LISTENER);
-
             MessageContext axisOutMsgContext =
-                    Axis2FlexibleMEPClient.send(
-                            // WS-A default is off
-                            (wsAOn != null && wsAOn.booleanValue()),
-
-                            // WS-Sec default is off
-                            (wsSecOn != null && wsSecOn.booleanValue()),
-
-                            // The Rampart security policy
-                            (String) synapseInMessageContext.getProperty(
-                                    Constants.OUTFLOW_SEC_POLICY),
-
-                            // WS-RM default is off
-                            (wsRmOn != null && wsRmOn.booleanValue()),
-
-                            // The Sandesha security policy
-                            (String) synapseInMessageContext.getProperty(
-                                    Constants.OUTFLOW_RM_POLICY),
-
-                            // use a separate listener
-                            (separateListener != null && 
separateListener.booleanValue()),
-
-                            // The Axis2 Message context of the Synapse MC
-                            synapseInMessageContext);
+                Axis2FlexibleMEPClient.send(
+                    // The endpoint where we are sending to
+                    endpoint,
 
+                    // The Axis2 Message context of the Synapse MC
+                    synapseInMessageContext);
 
             if (axisOutMsgContext != null && axisOutMsgContext.getEnvelope() 
!= null)
             { // if there is no response env will be null

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2SynapseEnvironment.java
 Tue Feb 13 01:22:01 2007
@@ -27,6 +27,7 @@
 import org.apache.synapse.Mediator;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.config.SynapseConfiguration;
+import org.apache.synapse.config.Endpoint;
 import org.apache.synapse.core.SynapseEnvironment;
 import org.apache.synapse.statistics.StatisticsCollector;
 import org.apache.synapse.statistics.StatisticsUtils;
@@ -87,11 +88,11 @@
         }
     }
 
-    public void send(MessageContext synCtx) {
+    public void send(Endpoint endpoint, MessageContext synCtx) {
         if (synCtx.isResponse())
             Axis2Sender.sendBack(synCtx);
         else
-            Axis2Sender.sendOn(synCtx);
+            Axis2Sender.sendOn(endpoint, synCtx);
     }
 
     public MessageContext createMessageContext() {

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/ProxyServiceMessageReceiver.java
 Tue Feb 13 01:22:01 2007
@@ -98,54 +98,50 @@
                 org.apache.axis2.context.MessageContext axisInMsgContext =
                     ((Axis2MessageContext) synCtx).getAxis2MessageContext();
                 org.apache.axis2.context.MessageContext axisOutMsgContext =
-                    Axis2FlexibleMEPClient.send(
-                        false, false,
-                        endpoint.getWsSecPolicyKey(),
-                        endpoint.isReliableMessagingOn(),
-                        endpoint.getWsRMPolicyKey(),
-                        endpoint.isUseSeparateListener(),
-                        synCtx);
+                    Axis2FlexibleMEPClient.send(endpoint, synCtx);
 
-                axisOutMsgContext.setServerSide(true);
-                
axisOutMsgContext.setProperty(org.apache.axis2.context.MessageContext.TRANSPORT_OUT,
-                    axisInMsgContext.getProperty(
-                            
org.apache.axis2.context.MessageContext.TRANSPORT_OUT));
+                if (axisOutMsgContext == null) {
+                    return;
+                } else {
 
-                
axisOutMsgContext.setTransportIn(axisInMsgContext.getTransportIn());
+                    axisOutMsgContext.setServerSide(true);
+                    
axisOutMsgContext.setProperty(org.apache.axis2.context.MessageContext.TRANSPORT_OUT,
+                        axisInMsgContext.getProperty(
+                                
org.apache.axis2.context.MessageContext.TRANSPORT_OUT));
 
-                // TODO this may be really strange but true.. unless you call 
the below, sometimes
-                // it results in an unbound URI exception for no credible 
reason - needs more
-                // investigation seems like a woodstox issue. Use hack for now
-                //axisOutMsgContext.getEnvelope().build();
+                    
axisOutMsgContext.setTransportIn(axisInMsgContext.getTransportIn());
 
-                log.debug("Reply Body : \n" + axisOutMsgContext.getEnvelope());
-                // Setting Required property to collect the proxy service 
statistics
-                String endPointName = endpoint.getName();
-                boolean endPointStatisticsEnable;
-                endPointStatisticsEnable = 
(org.apache.synapse.Constants.STATISTICS_ON == endpoint.getStatisticsEnable());
-                if (endPointName != null && endPointStatisticsEnable) {
-                    EndPointStatisticsStack endPointStatisticsStack = new 
EndPointStatisticsStack();
-                    boolean isFault =synCtx.getEnvelope().getBody().hasFault();
-                    endPointStatisticsStack.put(endPointName, 
System.currentTimeMillis(), !synCtx.isResponse(), 
endPointStatisticsEnable,isFault);
-                    
synCtx.setCorrelationProperty(org.apache.synapse.Constants.ENDPOINT_STATISTICS_STACK,
 endPointStatisticsStack);
-                }
-                AxisEngine ae = new 
AxisEngine(axisOutMsgContext.getConfigurationContext());
-                try {
-                    axisOutMsgContext.setProperty(
-                            org.apache.synapse.Constants.ISRESPONSE_PROPERTY, 
Boolean.TRUE);
-                    mc.getOperationContext().setProperty(
-                            Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
-                    // check for addressing is alredy engaged for this message.
-                    // if engage we should use the address enable Configuraion 
context.
-                    ae.send(axisOutMsgContext);
+                    if (log.isDebugEnabled()) {
+                        log.debug("Reply Body : \n" + 
axisOutMsgContext.getEnvelope());
+                    }
+                    // Setting Required property to collect the proxy service 
statistics
+                    String endPointName = endpoint.getName();
+                    boolean endPointStatisticsEnable;
+                    endPointStatisticsEnable = 
(org.apache.synapse.Constants.STATISTICS_ON == endpoint.getStatisticsEnable());
+                    if (endPointName != null && endPointStatisticsEnable) {
+                        EndPointStatisticsStack endPointStatisticsStack = new 
EndPointStatisticsStack();
+                        boolean isFault 
=synCtx.getEnvelope().getBody().hasFault();
+                        endPointStatisticsStack.put(endPointName, 
System.currentTimeMillis(), !synCtx.isResponse(), 
endPointStatisticsEnable,isFault);
+                        
synCtx.setCorrelationProperty(org.apache.synapse.Constants.ENDPOINT_STATISTICS_STACK,
 endPointStatisticsStack);
+                    }
+                    AxisEngine ae = new 
AxisEngine(axisOutMsgContext.getConfigurationContext());
+                    try {
+                        axisOutMsgContext.setProperty(
+                                
org.apache.synapse.Constants.ISRESPONSE_PROPERTY, Boolean.TRUE);
+                        mc.getOperationContext().setProperty(
+                                Constants.RESPONSE_WRITTEN, 
Constants.VALUE_TRUE);
+                        // check for addressing is alredy engaged for this 
message.
+                        // if engage we should use the address enable 
Configuraion context.
+                        ae.send(axisOutMsgContext);
 
-                } catch (AxisFault e) {
-                    
synCtx.setProperty(org.apache.synapse.Constants.SYNAPSE_ERROR,Boolean.TRUE);
-                    log.error("Axis fault encountered while forwarding message 
to endpoint : "
-                            + targetEndpoint, e);
-                } finally {
-                    if (endPointStatisticsEnable) {
-                        StatisticsUtils.processEndPointStatistics(synCtx);
+                    } catch (AxisFault e) {
+                        
synCtx.setProperty(org.apache.synapse.Constants.SYNAPSE_ERROR,Boolean.TRUE);
+                        log.error("Axis fault encountered while forwarding 
message to endpoint : "
+                                + targetEndpoint, e);
+                    } finally {
+                        if (endPointStatisticsEnable) {
+                            StatisticsUtils.processEndPointStatistics(synCtx);
+                        }
                     }
                 }
             }

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
 Tue Feb 13 01:22:01 2007
@@ -74,7 +74,7 @@
                             synCtx.getWSAAction() : "null"));
                     log.debug("Body : \n" + synCtx.getEnvelope());
                 }
-                synCtx.getEnvironment().send(synCtx);
+                synCtx.getEnvironment().send(null, synCtx);
 
             } else if (endpoints.size() == 1) {
                 Endpoint singleEndpoint = (Endpoint) endpoints.get(0);
@@ -90,27 +90,6 @@
                 if (shouldTrace) {
                     trace.trace("Sending to Endpoint : " + eprAddress);
                 }
-                if (singleEndpoint.isForcePOX()) {
-                    synCtx.setDoingPOX(true);
-                } else if (singleEndpoint.isForceSOAP()) {
-                    synCtx.setDoingPOX(false);
-                }
-
-                if (singleEndpoint.isForcePOX()) {
-                    synCtx.setDoingPOX(true);
-                } else if (singleEndpoint.isForceSOAP()) {
-                    synCtx.setDoingPOX(false);
-                }
-
-                if (singleEndpoint.isUseMTOM()) {
-                    synCtx.setDoingMTOM(true);
-                } else if (singleEndpoint.isUseSwa()) {
-                    synCtx.setDoingSWA(true);
-                }
-
-                if (singleEndpoint.isUseSeparateListener()) {
-                    
synCtx.setProperty(Constants.OUTFLOW_USE_SEPARATE_LISTENER, Boolean.TRUE);
-                }
                 String endPointName = singleEndpoint.getName();
 
                  // Setting Required property to collect the End Point 
statistics
@@ -133,31 +112,8 @@
                     log.debug("Body : \n" + synCtx.getEnvelope());
                 }
 
-                // if RM is turned on
-                if (singleEndpoint.isReliableMessagingOn()) {
-                    synCtx.setProperty(Constants.OUTFLOW_ADDRESSING_ON, 
Boolean.TRUE);
-                    synCtx.setProperty(Constants.OUTFLOW_RM_ON, Boolean.TRUE);
-                    if (singleEndpoint.getWsRMPolicyKey() != null) {
-                        synCtx.setProperty(Constants.OUTFLOW_RM_POLICY,
-                                singleEndpoint.getWsRMPolicyKey());
-                    }
-                }
+                synCtx.getEnvironment().send(singleEndpoint, synCtx);
 
-                // if WS Security is specified
-                if (singleEndpoint.isSecurityOn()) {
-                    synCtx.setProperty(Constants.OUTFLOW_ADDRESSING_ON, 
Boolean.TRUE);
-                    synCtx.setProperty(Constants.OUTFLOW_SECURITY_ON, 
Boolean.TRUE);
-                    if (singleEndpoint.getWsSecPolicyKey() != null) {
-                        synCtx.setProperty(Constants.OUTFLOW_SEC_POLICY,
-                                singleEndpoint.getWsSecPolicyKey());
-                    }
-                }
-
-                // if WS Addressing is specified
-                if (singleEndpoint.isAddressingOn()) {
-                    synCtx.setProperty(Constants.OUTFLOW_ADDRESSING_ON, 
Boolean.TRUE);
-                }
-                synCtx.getEnvironment().send(synCtx);
             } else {
                 String msg = "The send mediator currently supports only one 
endpoint";
                 synCtx.setProperty(Constants.SYNAPSE_ERROR, Boolean.TRUE);

Modified: 
webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_2.xml
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_2.xml?view=diff&rev=506919&r1=506918&r2=506919
==============================================================================
--- webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_2.xml 
(original)
+++ webservices/synapse/trunk/java/repository/conf/sample/synapse_sample_2.xml 
Tue Feb 13 01:22:01 2007
@@ -35,8 +35,8 @@
             <default>
                 <!-- it is possible to assign the result of an XPath 
expression as the value of a message property -->
                 <set-property name="symbol"
-                              expression="fn:concat('Normal Stock - ', 
//m0:CheckPriceRequest/m0:Code)"
-                              xmlns:m0="http://www.apache-synapse.org/test"/>
+                      expression="fn:concat('Normal Stock - ', 
//m0:getQuote/m0:request/m0:symbol)"
+                      xmlns:m0="http://services.samples/xsd"/>
             </default>
         </switch>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to