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]