From 16f076c0b598f2b29df466eb452ba1419b0d0d6f Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 28 Jan 2009 00:52:19 +0000 Subject: Fork a client thread to call the service after it's ready git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@738326 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/calculator/CalculatorClient.java | 29 ++++++++++++++-------- .../test/java/calculator/CalculatorTestCase.java | 1 + 2 files changed, 19 insertions(+), 11 deletions(-) (limited to 'java/sca') diff --git a/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java b/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java index af01e58e62..50b81ace2a 100644 --- a/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java +++ b/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java @@ -40,17 +40,24 @@ public class CalculatorClient { @Init public void calculate() { - - // Calculate - try { - System.out.println("SCA API ClassLoader: " + print(Reference.class.getClassLoader())); - System.out.println("3 + 2=" + calculatorService.add(3, 2)); - System.out.println("3 - 2=" + calculatorService.subtract(3, 2)); - System.out.println("3 * 2=" + calculatorService.multiply(3, 2)); - System.out.println("3 / 2=" + calculatorService.divide(3, 2)); - } catch (Throwable e) { - e.printStackTrace(); - } + // The calls cannot be done in the same thread as the services are starting + // Fork a new thread + Thread thread = new Thread() { + public void run() { + // Calculate + try { + Thread.sleep(3000); + System.out.println("SCA API ClassLoader: " + print(Reference.class.getClassLoader())); + System.out.println("3 + 2=" + calculatorService.add(3, 2)); + System.out.println("3 - 2=" + calculatorService.subtract(3, 2)); + System.out.println("3 * 2=" + calculatorService.multiply(3, 2)); + System.out.println("3 / 2=" + calculatorService.divide(3, 2)); + } catch (Throwable e) { + e.printStackTrace(); + } + } + }; + thread.start(); } private static String print(ClassLoader cl) { diff --git a/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java b/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java index 4978140a2f..2e710ee4ae 100644 --- a/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java +++ b/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java @@ -57,6 +57,7 @@ public class CalculatorTestCase { @AfterClass public static void tearDownAfterClass() throws Exception { + Thread.sleep(30000); if (node != null) { node.stop(); node.destroy(); -- cgit v1.2.3