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