You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Raymond Feng <en...@gmail.com> on 2007/01/23 22:42:09 UTC

Re: 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/

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: <is...@apache.org>
To: <tu...@ws.apache.org>
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: tuscany-commits-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-commits-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org