You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2010/07/15 17:29:27 UTC

svn commit: r964464 - in /tuscany/sca-java-2.x/trunk/contrib/samples/async: embedded-jse-async-sample-launcher/src/main/java/launcher/ sample-contribution-implementation-java-calculator-async/src/main/java/calculator/ sample-contribution-implementation...

Author: slaws
Date: Thu Jul 15 15:29:27 2010
New Revision: 964464

URL: http://svn.apache.org/viewvc?rev=964464&view=rev
Log:
A bit of tidying to remove some chaff and add the async callback pattern into the sample

Added:
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncHandler.java
Removed:
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculateViaAsyncRefImpl.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncClientLogic.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorBoot.java
Modified:
    tuscany/sca-java-2.x/trunk/contrib/samples/async/embedded-jse-async-sample-launcher/src/main/java/launcher/SampleJSELauncher.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculateViaAsyncRef.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorClient.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorService.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java
    tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/resources/Calculator.composite

Modified: tuscany/sca-java-2.x/trunk/contrib/samples/async/embedded-jse-async-sample-launcher/src/main/java/launcher/SampleJSELauncher.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/embedded-jse-async-sample-launcher/src/main/java/launcher/SampleJSELauncher.java?rev=964464&r1=964463&r2=964464&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/embedded-jse-async-sample-launcher/src/main/java/launcher/SampleJSELauncher.java (original)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/embedded-jse-async-sample-launcher/src/main/java/launcher/SampleJSELauncher.java Thu Jul 15 15:29:27 2010
@@ -34,58 +34,12 @@ public class SampleJSELauncher extends R
     protected boolean waitBeforeStopping = false;
     
     public static void main(String[] args) throws Exception {
-        
-        // get the contribution name from the 1st argument it there is one
-  
-        
-        // assume that more than one argument means that the caller wants to
-        // keep the SCA application running while other clients use the services
-        boolean waitBeforeStopping = false;
-        
-        if (args != null && args.length > 1 && args[1].equals("waitBeforeStopping")){
-            waitBeforeStopping = true;
-        }
-        
-        SampleJSELauncher launcher = new SampleJSELauncher(waitBeforeStopping);
-        
-        launcher.launchImplementationJavaCalculatorAsync();
-               
+        SampleJSELauncher launcher = new SampleJSELauncher();       
+        launcher.launchImplementationJavaCalculatorAsync();          
     }
-    
-    public SampleJSELauncher(boolean waitBeforeStopping){
-        this.waitBeforeStopping = waitBeforeStopping;
-    }
-    
-    /**
-     * Wait for user input. Allows us to keep the Tuscany runtime and the SCA application
-     * running while other clients access the services provided 
-     */
-    public void waitBeforeStopping(){
-        if (waitBeforeStopping){
-            try {
-                System.out.println("Press key to continue");
-                int input = System.in.read();
-            } catch (Exception ex) {
-                // do nothing
-            }
-        }
-    }
-       
-    /**
-     * The contribution-binding-sca-calculator contribution includes a client component 
-     * that calls the CalculatorServiceComponent from an operation marked by @Init. 
-     */
+
     public void launchImplementationJavaCalculatorAsync(){
         Node node = startNode(new Contribution("c1", "../sample-contribution-implementation-java-calculator-async/target/sample-contribution-implementation-java-calculator-async.jar"));
-        waitBeforeStopping();
         stopNode(node);
     }    
-    
-
-//    public void launchImplementationJavaCalculator(){
-//        Node node = startNode(new Contribution("c1", "../contribution-implementation-java-calculator/target/classes"));
-//        waitBeforeStopping();
-//        stopNode(node);
-//    }      
-    
 }

Modified: tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculateViaAsyncRef.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculateViaAsyncRef.java?rev=964464&r1=964463&r2=964464&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculateViaAsyncRef.java (original)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculateViaAsyncRef.java Thu Jul 15 15:29:27 2010
@@ -3,14 +3,15 @@ package calculator;
 import java.util.concurrent.Future;
 
 import javax.xml.ws.AsyncHandler;
-import javax.xml.ws.Response;
+
+import org.oasisopen.sca.annotation.Remotable;
 
 /**
- * client interface for async reference
- * @author kgoodson
+ * Async client version of the CalculatorService interface
  *
  */
 
+@Remotable
 public interface CalculateViaAsyncRef {
 
 	//public Response<String> calculate( Integer i1);

Added: tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncHandler.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncHandler.java?rev=964464&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncHandler.java (added)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncHandler.java Thu Jul 15 15:29:27 2010
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package calculator;
+
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
+
+/**
+ * Handles callbacks to the async client
+ */
+
+public class CalculatorAsyncHandler implements AsyncHandler<String> {
+    public void handleResponse(Response<String> res) {
+        try {
+            System.out.println("Async client callback patern: result in handler = " + res.get());
+        } catch(Exception ex){
+            System.out.println("Async client callback patern: exception in handler = " + ex.getMessage());
+        }
+    }
+}

Modified: tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorClient.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorClient.java?rev=964464&r1=964463&r2=964464&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorClient.java (original)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorClient.java Thu Jul 15 15:29:27 2010
@@ -39,12 +39,8 @@ public class CalculatorClient {
         this.calculatorService = calculatorService;
     }
     
-    
     @Init
     public void calculate() {
-
-        // Calculate
-        //System.out.println("SCA API ClassLoader: " + print(Reference.class.getClassLoader()));
         System.out.println("calculation=" + calculatorService.calculate(20));
     }
     

Modified: tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorService.java?rev=964464&r1=964463&r2=964464&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorService.java (original)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorService.java Thu Jul 15 15:29:27 2010
@@ -21,8 +21,9 @@ package calculator;
 import org.oasisopen.sca.annotation.Remotable;
 
 /**
- * The Calculator service interface.
+ * The sycn Calculator service interface.
  */
+
 @Remotable
 public interface CalculatorService {
 

Modified: tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java?rev=964464&r1=964463&r2=964464&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java Thu Jul 15 15:29:27 2010
@@ -43,9 +43,9 @@ public class CalculatorServiceImpl imple
 		
 		// sync
 		String result = calculatorRefSyncService.calculate(1);
-		System.out.println(result);
+		System.out.println("Sync client patern: result = " + result);
 		
-//		// async poll
+		// async poll
 		Future<String> future = calculatorRefSyncService.calculateAsync(20);
 		
 		while (!future.isDone()){
@@ -54,7 +54,7 @@ public class CalculatorServiceImpl imple
 		
 		try {
 			result = future.get();
-			System.out.println("Async client patern success: result = " + result);
+			System.out.println("Async client poll patern: result = " + result);
 		} catch (InterruptedException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
@@ -63,16 +63,14 @@ public class CalculatorServiceImpl imple
 			e.printStackTrace();
 		}
 		
-
-		
 		// async callback 
-//		AsyncHandler<String> handler = new AsyncHandler<String>();
-//		future = calculatorRef.calculateAsync(3, handler);
-/*		
+		CalculatorAsyncHandler handler = new CalculatorAsyncHandler();
+		future = calculatorRefSyncService.calculateAsync(3, handler);
+		
 		while (!future.isDone()){
 			System.out.println("Waiting for callback");
 		}
-*/
+
 		return result;
 	}
 

Modified: tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/resources/Calculator.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/resources/Calculator.composite?rev=964464&r1=964463&r2=964464&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/resources/Calculator.composite (original)
+++ tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/resources/Calculator.composite Thu Jul 15 15:29:27 2010
@@ -24,14 +24,14 @@
 
     <component name="CalculatorServiceComponent">
 		<implementation.java class="calculator.CalculatorServiceImpl"/>
-                <reference name="calculatorRefSyncService" target="CalculatorSync"/>
-                <!-- <reference name="calculatorRefAsyncService" target="CalculatorAsync"/> -->
- 
+        <reference name="calculatorRefSyncService" target="CalculatorSync"/>
+        <!-- <reference name="calculatorRefAsyncService" target="CalculatorAsync"/> -->
     </component>
 
     <component name="CalculatorSync">
             <implementation.java class="calculator.CalculatorSyncServiceImpl"/>
     </component>
+    
     <!-- <component name="CalculatorAsync">
             <implementation.java class="calculator.CalculatorAsyncServiceImpl"/>
     </component> -->