Hi,

It caused a build break:

[INFO] [compiler:compile]
[INFO] Compiling 21 source files to C:\Tuscany\java\sca\services\bindings\bindin
g.axis2\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
C:\Tuscany\java\sca\services\bindings\binding.axis2\src\main\java\org\apache\tus
cany\binding\axis2\Axis2ServiceCallbackTargetInvoker.java:[81,38] cannot find sy
mbol
symbol  : variable RESPONSE
location: class org.apache.tuscany.binding.axis2.Axis2AsyncTargetInvoker



C:\Tuscany\java\sca\services\bindings\binding.axis2\src\main\java\org\apache\tus
cany\binding\axis2\Axis2ServiceCallbackTargetInvoker.java:[81,38] cannot find sy
mbol
symbol  : variable RESPONSE
location: class org.apache.tuscany.binding.axis2.Axis2AsyncTargetInvoker

Thanks,
Raymond

----- Original Message ----- From: <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, January 23, 2007 12:52 PM
Subject: svn commit: r499126 - in /incubator/tuscany/java: samples/sca/helloworldwsclient-async/src/test/java/helloworld/ sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/


Author: isilval
Date: Tue Jan 23 12:52:39 2007
New Revision: 499126

URL: http://svn.apache.org/viewvc?view=rev&rev=499126
Log:
Fixes for TUSCANY-1003

Modified:

incubator/tuscany/java/samples/sca/helloworldwsclient-async/src/test/java/helloworld/HelloWorldWSAsyncClient.java

incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java

incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java

Modified: incubator/tuscany/java/samples/sca/helloworldwsclient-async/src/test/java/helloworld/HelloWorldWSAsyncClient.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient-async/src/test/java/helloworld/HelloWorldWSAsyncClient.java?view=diff&rev=499126&r1=499125&r2=499126
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient-async/src/test/java/helloworld/HelloWorldWSAsyncClient.java (original) +++ incubator/tuscany/java/samples/sca/helloworldwsclient-async/src/test/java/helloworld/HelloWorldWSAsyncClient.java Tue Jan 23 12:52:39 2007
@@ -33,10 +33,10 @@
    public void testWSClient() throws Exception {
        try {
            String msg = helloWorldLocal.getGreetings("John");
-            Assert.assertNull(msg);
+            Assert.assertEquals(msg, "Hola John");

-            // Sleep for 5 seconds to wait the callback to happen
-            Thread.sleep(5000);
+            // Sleep for 2 seconds to wait the callback to happen
+            Thread.sleep(2000);
        } catch (Exception e) {
            e.printStackTrace();
            throw e;

Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java?view=diff&rev=499126&r1=499125&r2=499126
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java (original) +++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2AsyncTargetInvoker.java Tue Jan 23 12:52:39 2007
@@ -20,13 +20,14 @@

import java.lang.reflect.InvocationTargetException;
import java.util.LinkedList;
+import java.util.concurrent.CountDownLatch;
+
import javax.xml.namespace.QName;

import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
import org.apache.tuscany.spi.wire.Message;

-import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axis2.AxisFault;
import org.apache.axis2.client.OperationClient;
@@ -35,8 +36,6 @@

public class Axis2AsyncTargetInvoker extends Axis2TargetInvoker {

-    protected static final OMElement RESPONSE = null;
-
    private Axis2ReferenceCallbackTargetInvoker callbackInvoker;

    public Axis2AsyncTargetInvoker(ServiceClient serviceClient,
@@ -59,10 +58,21 @@
Axis2ReferenceCallback callback = new Axis2ReferenceCallback(callbackInvoker);
            operationClient.setCallback(callback);

+            // FIXME Synchronize with callback thread to get return value
+            CountDownLatch doneSignal = new CountDownLatch(1);
+            callbackInvoker.setSignal(doneSignal);
+
            operationClient.execute(false);

-            // REVIEW it seems ok to return null
-            return RESPONSE;
+            try {
+                doneSignal.await();
+            } catch(InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            // FIXME returning value from callback thread
+            Object response = callbackInvoker.getReturnPayload();
+            return response;
        } catch (AxisFault e) {
            throw new InvocationTargetException(e);
        }

Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java?view=diff&rev=499126&r1=499125&r2=499126
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java (original) +++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java Tue Jan 23 12:52:39 2007
@@ -20,6 +20,7 @@

import java.lang.reflect.InvocationTargetException;
import java.util.LinkedList;
+import java.util.concurrent.CountDownLatch;

import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.InboundWire;
@@ -34,6 +35,8 @@
    private LinkedList<Object> callbackRoutingChain;
    private boolean cacheable;
    Axis2CallbackInvocationHandler invocationHandler;
+    private CountDownLatch signal;
+    private Object returnPayload;

    public Axis2ReferenceCallbackTargetInvoker(Operation operation,
                                               InboundWire inboundWire,
@@ -48,9 +51,13 @@
        Object[] args;
        if (payload != null && !payload.getClass().isArray()) {
            args = new Object[]{payload};
+            returnPayload = payload;
        } else {
            args = (Object[]) payload;
+            returnPayload = args[0];
        }
+        // FIXME synchronize with forward thread to return value
+        signal.countDown();
        try {
return invocationHandler.invoke(operation, args, callbackRoutingChain);
        } catch (Throwable t) {
@@ -95,5 +102,13 @@

public void setCallbackRoutingChain(LinkedList<Object> callbackRoutingChain) {
        this.callbackRoutingChain = callbackRoutingChain;
+    }
+
+    public void setSignal(CountDownLatch signal) {
+        this.signal = signal;
+    }
+
+    public Object getReturnPayload() {
+        return returnPayload;
    }
}



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



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

Reply via email to