Author: asankha
Date: Mon Jan 15 22:16:18 2007
New Revision: 496605

URL: http://svn.apache.org/viewvc?view=rev&rev=496605
Log:
prepare to commit the new code for non blocking http based on the HttpCore 
project and its NIO extensions

Removed:
    webservices/synapse/trunk/java/modules/nhttp/pom.xml
    webservices/synapse/trunk/java/modules/nhttp/src/
Modified:
    
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/DynamicAxisOperation.java

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=496605&r1=496604&r2=496605
==============================================================================
--- 
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
 Mon Jan 15 22:16:18 2007
@@ -139,6 +139,11 @@
             serviceCtx, clientOptions);
         mepClient.addMessageContext(axisOutMsgCtx);
 
+        // always set a callback as we decide if the send it blocking or non 
blocking within
+        // the MEP client. This does not cause an overhead, as we simply 
create a 'holder'
+        // object with a reference to the outgoing synapse message context 
synapseOutMessageContext
+        mepClient.setCallback(new AsyncCallback(synapseOutMessageContext));
+        
         if (clientOptions.isUseSeparateListener()) {
             mepClient.setCallback(new AsyncCallback(synapseOutMessageContext));
             axisOutMsgCtx.getOperationContext().setProperty(

Modified: 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/DynamicAxisOperation.java
URL: 
http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/DynamicAxisOperation.java?view=diff&rev=496605&r1=496604&r2=496605
==============================================================================
--- 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/DynamicAxisOperation.java
 (original)
+++ 
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/DynamicAxisOperation.java
 Mon Jan 15 22:16:18 2007
@@ -274,7 +274,19 @@
                                // that soapAction+wsa:Action on response don't 
conflict
                                options.setAction("");
                        } else {
-                               if (block) {
+                // transports are expected to be blocking by default, hence 
check if
+                // the outgoing transport explicitly states that its 
non-blocking
+                // need to update the Axis2 transports with a better method to 
indicate
+                // if they are non-blocking.
+                Parameter nonBlocking = 
transportOut.getParameter("non-blocking");
+                if (nonBlocking != null && 
"true".equals(nonBlocking.getValue())) {
+                    block = false;
+                    // ie override the option passed in
+                }
+
+                if (block) {
+                    this.setCallback(null);
+
                                        // Send the SOAP Message and receive a 
response
                                        MessageContext response = send(mc);
                                        // check for a fault and return the 
result
@@ -292,6 +304,9 @@
                                        }
                                        completed = true;
                                } else {
+                    SynapseCallbackReceiver callbackReceiver = 
(SynapseCallbackReceiver) axisOp
+                                               .getMessageReceiver();
+                                   
callbackReceiver.addCallback(mc.getMessageID(), callback);
                                        
sc.getConfigurationContext().getThreadPool().execute(
                                                        new 
NonBlockingInvocationWorker(callback, mc));
                                }



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

Reply via email to