Author: slaws
Date: Thu Jul 15 16:19:24 2010
New Revision: 964477

URL: http://svn.apache.org/viewvc?rev=964477&view=rev
Log:
Trying to get the async version of the service working. However it's failing 
with a policy error that I think is caused by the recent policy changes.

Added:
    
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsync.java
    
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsyncImpl.java
      - copied, changed from r964456, 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncServiceImpl.java
    
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java
      - copied, changed from r964464, 
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/java/calculator/CalculatorServiceSyncImpl.java
      - copied, changed from r964456, 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorSyncServiceImpl.java
Removed:
    
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncServiceImpl.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/java/calculator/CalculatorSyncServiceImpl.java
Modified:
    
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/resources/Calculator.composite

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=964477&r1=964476&r2=964477&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 16:19:24 2010
@@ -21,11 +21,10 @@ package calculator;
 import org.oasisopen.sca.annotation.Remotable;
 
 /**
- * The sycn Calculator service interface.
+ * The sync Calculator service interface.
  */
 
 @Remotable
 public interface CalculatorService {
-
     String calculate(Integer n1);
 }

Added: 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsync.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/CalculatorServiceAsync.java?rev=964477&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsync.java
 (added)
+++ 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsync.java
 Thu Jul 15 16:19:24 2010
@@ -0,0 +1,33 @@
+/*
+ * 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 org.oasisopen.sca.ResponseDispatch;
+import org.oasisopen.sca.annotation.AsyncInvocation;
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * The async Calculator service interface.
+ */
+
+...@remotable
+...@asyncinvocation
+public interface CalculatorServiceAsync {
+    void calculateAsync(Integer n1, ResponseDispatch<String> response);
+}

Copied: 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsyncImpl.java
 (from r964456, 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncServiceImpl.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/CalculatorServiceAsyncImpl.java?p2=tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsyncImpl.java&p1=tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncServiceImpl.java&r1=964456&r2=964477&rev=964477&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorAsyncServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceAsyncImpl.java
 Thu Jul 15 16:19:24 2010
@@ -1,11 +1,15 @@
 package calculator;
 
-public class CalculatorAsyncServiceImpl implements CalculatorService {
+import org.oasisopen.sca.ResponseDispatch;
+
+public class CalculatorServiceAsyncImpl implements CalculatorServiceAsync {
 
        @Override
-       public String calculate(Integer n1) {
-               String retval = "sync service invoked";
-               return retval;
+       public void calculateAsync(Integer n1, ResponseDispatch<String> 
response) {
+           int result = n1 + n1;
+           String retval = "async service invoked: " + n1 + " + " + n1 + " = " 
+ result;
+               
+           response.sendResponse(retval);
        }
 
 }

Copied: 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java
 (from r964464, 
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/CalculatorServiceProxyImpl.java?p2=tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceProxyImpl.java&p1=tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceImpl.java&r1=964464&r2=964477&rev=964477&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/CalculatorServiceProxyImpl.java
 Thu Jul 15 16:19:24 2010
@@ -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 imple
                
                // 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 imple
 
                return result;
        }
-
-
-
-
-
-
-
 }

Copied: 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceSyncImpl.java
 (from r964456, 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorSyncServiceImpl.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/CalculatorServiceSyncImpl.java?p2=tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceSyncImpl.java&p1=tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorSyncServiceImpl.java&r1=964456&r2=964477&rev=964477&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorSyncServiceImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/contrib/samples/async/sample-contribution-implementation-java-calculator-async/src/main/java/calculator/CalculatorServiceSyncImpl.java
 Thu Jul 15 16:19:24 2010
@@ -1,10 +1,11 @@
 package calculator;
 
-public class CalculatorSyncServiceImpl implements CalculatorService {
+public class CalculatorServiceSyncImpl implements CalculatorService {
 
        @Override
        public String calculate(Integer n1) {
-               String retval = "sync service invoked";
+           int result = n1 + n1;
+               String retval = "sync service invoked: " + n1 + " + " + n1 + " 
= " + result;
                return retval;
        }
 

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=964477&r1=964476&r2=964477&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 16:19:24 2010
@@ -20,20 +20,24 @@
 <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912";
            targetNamespace="http://sample";
            xmlns:sample="http://sample";
+           xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912";
            name="Calculator">
 
     <component name="CalculatorServiceComponent">
-               <implementation.java class="calculator.CalculatorServiceImpl"/>
-        <reference name="calculatorRefSyncService" target="CalculatorSync"/>
-        <!-- <reference name="calculatorRefAsyncService" 
target="CalculatorAsync"/> -->
+               <implementation.java 
class="calculator.CalculatorServiceProxyImpl"/>
+        <reference name="calculatorServiceRefSync" target="CalculatorSync"/>
+        <reference name="calculatorServiceRefAsync" target="CalculatorAsync"/>
     </component>
 
     <component name="CalculatorSync">
-            <implementation.java class="calculator.CalculatorSyncServiceImpl"/>
+        <implementation.java class="calculator.CalculatorServiceSyncImpl"/>
     </component>
     
-    <!-- <component name="CalculatorAsync">
-            <implementation.java 
class="calculator.CalculatorAsyncServiceImpl"/>
-    </component> -->
+    <component name="CalculatorAsync">
+        <implementation.java class="calculator.CalculatorServiceAsyncImpl"/>
+        <service name="CalculatorServiceAsync">
+            <binding.ws uri="http://localhost:8085/CalculatorAsync"/>
+        </service>
+    </component>
 
 </composite>


Reply via email to