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