summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java (renamed from sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java)44
1 files changed, 25 insertions, 19 deletions
diff --git a/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java b/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java
index 994ad42d92..69c96fe892 100644
--- a/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java
+++ b/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java
@@ -21,32 +21,45 @@ package calculator;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
-import javax.xml.ws.AsyncHandler;
-
import org.oasisopen.sca.annotation.Reference;
-
-
/**
- * An implementation of the Calculator service.
+ * An implementation of the Calculator service which just proxies
+ * to sync and asyn versions of the calculator service. This proxy
+ * exercises the various async interface alternatives
*/
-public class CalculatorServiceImpl implements CalculatorService {
+public class CalculatorServiceProxyImpl implements CalculatorService {
@Reference
- protected CalculateViaAsyncRef calculatorRefSyncService;
+ protected CalculateViaAsyncRef calculatorServiceRefSync;
-// @Reference
-// protected CalculateViaAsyncRef calculatorRefAsyncService;
+ @Reference
+ protected CalculateViaAsyncRef calculatorServiceRefAsync;
@Override
public String calculate(Integer n1) {
+ String result = null;
+
+ // calculate using a sync service
+ System.out.println("Calling sync service");
+ result = calculate(calculatorServiceRefSync, n1);
+
+ // calculate using an aycn service
+ System.out.println("Calling async service");
+ result += calculate(calculatorServiceRefAsync, n1);
+
+ return result;
+ }
+
+ // exercise sync and async versions of a service interface method
+ private String calculate(CalculateViaAsyncRef calculatorRef, Integer n1) {
// sync
- String result = calculatorRefSyncService.calculate(1);
+ String result = calculatorRef.calculate(1);
System.out.println("Sync client patern: result = " + result);
// async poll
- Future<String> future = calculatorRefSyncService.calculateAsync(20);
+ Future<String> future = calculatorRef.calculateAsync(20);
while (!future.isDone()){
System.out.println("Waiting for poll");
@@ -65,7 +78,7 @@ public class CalculatorServiceImpl implements CalculatorService {
// async callback
CalculatorAsyncHandler handler = new CalculatorAsyncHandler();
- future = calculatorRefSyncService.calculateAsync(3, handler);
+ future = calculatorRef.calculateAsync(3, handler);
while (!future.isDone()){
System.out.println("Waiting for callback");
@@ -73,11 +86,4 @@ public class CalculatorServiceImpl implements CalculatorService {
return result;
}
-
-
-
-
-
-
-
}