You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/05/09 20:52:15 UTC

svn commit: r536616 - in /incubator/tuscany/java/sca/modules: core-spi/src/main/java/org/apache/tuscany/core/ core/src/main/java/org/apache/tuscany/core/runtime/

Author: rfeng
Date: Wed May  9 11:52:14 2007
New Revision: 536616

URL: http://svn.apache.org/viewvc?view=rev&rev=536616
Log:
Add getInvoker() methods to RuntimeComponentService and RuntimeComponentReference

Modified:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java?view=diff&rev=536616&r1=536615&r2=536616
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java Wed May  9 11:52:14 2007
@@ -23,6 +23,8 @@
 
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.ComponentReference;
+import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.invocation.Invoker;
 import org.apache.tuscany.provider.ReferenceBindingProvider;
 
 /**
@@ -68,5 +70,14 @@
      * @return
      */
     void setBindingProvider(Binding binding, ReferenceBindingProvider bindingProvider);
+    
+    
+    /**
+     * Get the invoker for the given binding and operation
+     * @param binding
+     * @param operation
+     * @return
+     */
+    Invoker getInvoker(Binding binding, Operation operation);
     
 }

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java?view=diff&rev=536616&r1=536615&r2=536616
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java Wed May  9 11:52:14 2007
@@ -23,6 +23,8 @@
 
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.invocation.Invoker;
 import org.apache.tuscany.provider.ServiceBindingProvider;
 
 /**
@@ -81,4 +83,19 @@
      */
     void setBindingProvider(Binding binding, ServiceBindingProvider bindingProvider);
     
+    /**
+     * Get the invoker for the given binding and operation
+     * @param binding
+     * @param operation
+     * @return
+     */
+    Invoker getInvoker(Binding binding, Operation operation);    
+    
+    /**
+     * Get the callback invoker for the given binding and operation
+     * @param binding
+     * @param operation
+     * @return
+     */
+    Invoker getCallbackInvoker(Binding binding, Operation operation);    
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java?view=diff&rev=536616&r1=536615&r2=536616
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java Wed May  9 11:52:14 2007
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
- 
+
 package org.apache.tuscany.core.runtime;
 
 import java.util.ArrayList;
@@ -28,6 +28,9 @@
 import org.apache.tuscany.assembly.impl.ComponentReferenceImpl;
 import org.apache.tuscany.core.RuntimeComponentReference;
 import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.invocation.InvocationChain;
+import org.apache.tuscany.invocation.Invoker;
 import org.apache.tuscany.provider.ReferenceBindingProvider;
 
 public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implements RuntimeComponentReference {
@@ -50,13 +53,27 @@
         }
         return null;
     }
-    
+
     public ReferenceBindingProvider getBindingProvider(Binding binding) {
         return bindingProviders.get(binding);
     }
-    
+
     public void setBindingProvider(Binding binding, ReferenceBindingProvider bindingProvider) {
         bindingProviders.put(binding, bindingProvider);
+    }
+
+    public Invoker getInvoker(Binding binding, Operation operation) {
+        RuntimeWire wire = getRuntimeWire(binding);
+        if (wire == null) {
+            return null;
+        }
+        for (InvocationChain chain : wire.getInvocationChains()) {
+            Operation op = chain.getSourceOperation();
+            if (op == operation) {
+                return chain.getHeadInvoker();
+            }
+        }
+        return null;
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java?view=diff&rev=536616&r1=536615&r2=536616
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java Wed May  9 11:52:14 2007
@@ -28,6 +28,9 @@
 import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
 import org.apache.tuscany.core.RuntimeComponentService;
 import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.interfacedef.Operation;
+import org.apache.tuscany.invocation.InvocationChain;
+import org.apache.tuscany.invocation.Invoker;
 import org.apache.tuscany.provider.ServiceBindingProvider;
 
 public class RuntimeComponentServiceImpl extends ComponentServiceImpl implements RuntimeComponentService {
@@ -42,7 +45,7 @@
     public List<RuntimeWire> getRuntimeWires() {
         return wires;
     }
-    
+
     public RuntimeWire getRuntimeWire(Binding binding) {
         for (RuntimeWire wire : wires) {
             if (wire.getTarget().getBinding() == binding) {
@@ -50,7 +53,7 @@
             }
         }
         return null;
-    }    
+    }
 
     public List<RuntimeWire> getCallbackWires() {
         return callbackWires;
@@ -59,12 +62,40 @@
     public void addCallbackWire(RuntimeWire callbackWire) {
         this.callbackWires.add(callbackWire);
     }
-    
+
     public ServiceBindingProvider getBindingProvider(Binding binding) {
         return bindingProviders.get(binding);
     }
-    
+
     public void setBindingProvider(Binding binding, ServiceBindingProvider bindingProvider) {
         bindingProviders.put(binding, bindingProvider);
+    }
+
+    public Invoker getInvoker(Binding binding, Operation operation) {
+        RuntimeWire wire = getRuntimeWire(binding);
+        if (wire == null) {
+            return null;
+        }
+        for (InvocationChain chain : wire.getInvocationChains()) {
+            Operation op = chain.getTargetOperation();
+            if (op == operation) {
+                return chain.getHeadInvoker();
+            }
+        }
+        return null;
+    }
+
+    public Invoker getCallbackInvoker(Binding binding, Operation operation) {
+        for (RuntimeWire wire : callbackWires) {
+            if (wire.getTarget().getBinding() == binding) {
+                for (InvocationChain chain : wire.getCallbackInvocationChains()) {
+                    Operation op = chain.getSourceOperation();
+                    if (op == operation) {
+                        return chain.getHeadInvoker();
+                    }
+                }
+            }
+        }
+        return null;
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org