Author: hiranya
Date: Mon Aug 26 02:32:11 2013
New Revision: 1517408

URL: http://svn.apache.org/r1517408
Log:
Making it possible to use the Options object on the msgctx when mediating thru 
callout mediator. Patch applied from SYNAPSE-873 with some changes

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/CalloutMediatorSerializationTest.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java?rev=1517408&r1=1517407&r2=1517408&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorFactory.java
 Mon Aug 26 02:32:11 2013
@@ -55,6 +55,7 @@ public class CalloutMediatorFactory exte
     private static final QName ATT_AXIS2XML = new QName("axis2xml");
     private static final QName ATT_REPOSITORY = new QName("repository");
     private static final QName ATT_PASS_HEADERS = new QName("passHeaders");
+    private static final QName ATT_INIT_AXI2_CLIENT_OPTIONS = new 
QName("initAxis2ClientOptions");
     private static final QName Q_CONFIG
             = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "configuration");
     private static final QName Q_SOURCE
@@ -78,6 +79,7 @@ public class CalloutMediatorFactory exte
         OMAttribute attServiceURL = elem.getAttribute(ATT_URL);
         OMAttribute attAction     = elem.getAttribute(ATT_ACTION);
         OMAttribute attPassHeaders = elem.getAttribute(ATT_PASS_HEADERS);
+        OMAttribute attInitClientOptions = 
elem.getAttribute(ATT_INIT_AXI2_CLIENT_OPTIONS);
         OMElement epElement = elem.getFirstChildWithName(Q_ENDPOINT);
         OMElement   configElt     = elem.getFirstChildWithName(Q_CONFIG);
         OMElement   sourceElt     = elem.getFirstChildWithName(Q_SOURCE);
@@ -109,6 +111,11 @@ public class CalloutMediatorFactory exte
             callout.setPassHeaders(true);
         }
 
+        if (attInitClientOptions != null &&
+                
JavaUtils.isFalseExplicitly(attInitClientOptions.getAttributeValue())) {
+            callout.setInitClientOptions(false);
+        }
+
         if (configElt != null) {
 
             OMAttribute axis2xmlAttr = configElt.getAttribute(ATT_AXIS2XML);

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java?rev=1517408&r1=1517407&r2=1517408&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/CalloutMediatorSerializer.java
 Mon Aug 26 02:32:11 2013
@@ -79,6 +79,10 @@ public class CalloutMediatorSerializer e
             callout.addAttribute(fac.createOMAttribute("passHeaders", nullNS, 
"true"));
         }
 
+        if (!mediator.isInitClientOptions()) {
+            
callout.addAttribute(fac.createOMAttribute("initAxis2ClientOptions", nullNS, 
"false"));
+        }
+
         if (mediator.getRequestXPath() != null || mediator.getRequestKey() != 
null) {
             OMElement source = fac.createOMElement("source", synNS, callout);
             if (mediator.getRequestXPath() != null) {

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java?rev=1517408&r1=1517407&r2=1517408&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
 Mon Aug 26 02:32:11 2013
@@ -74,6 +74,8 @@ public class CalloutMediator extends Abs
 
     private boolean passHeaders = false;
 
+    private boolean initClientOptions = true;
+
     private boolean securityOn = false;  //Should messages be sent using 
WS-Security?
 
     private String wsSecPolicyKey = null;
@@ -284,6 +286,7 @@ public class CalloutMediator extends Abs
 
     public void init(SynapseEnvironment synEnv) {
         blockingMsgSender = new Axis2BlockingClient(clientRepository, 
axis2xml);
+        blockingMsgSender.setInitClientOptions(initClientOptions);
 
         EndpointDefinition endpointDefinition = null;
 
@@ -401,6 +404,14 @@ public class CalloutMediator extends Abs
         this.passHeaders = passHeaders;
     }
 
+    public boolean isInitClientOptions() {
+        return initClientOptions;
+    }
+
+    public void setInitClientOptions(boolean initClientOptions) {
+        this.initClientOptions = initClientOptions;
+    }
+
     /**
      * Is WS-Security turned on?
      *

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/CalloutMediatorSerializationTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/CalloutMediatorSerializationTest.java?rev=1517408&r1=1517407&r2=1517408&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/CalloutMediatorSerializationTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/config/xml/CalloutMediatorSerializationTest.java
 Mon Aug 26 02:32:11 2013
@@ -126,5 +126,15 @@ public class CalloutMediatorSerializatio
         assertTrue(serialization(inputXml, calloutMediatorSerializer));
     }
 
+    public void testCalloutMediatorSerializationScenarioEight() {
+        String inputXml = "<callout xmlns=\"http://ws.apache.org/ns/synapse\"; 
initAxis2ClientOptions=\"false\">" +
+                "<endpoint>" +
+                "<address 
uri=\"http://localhost:9000/services/SimpleStockQuoteService\"/>" +
+                "</endpoint>" +
+                "</callout>";
+        assertTrue(serialization(inputXml, calloutMediatorFactory, 
calloutMediatorSerializer));
+        assertTrue(serialization(inputXml, calloutMediatorSerializer));
+    }
+
 }
 


Reply via email to