You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by is...@apache.org on 2006/12/07 15:27:03 UTC
svn commit: r483467 - in /incubator/tuscany/java:
samples/sca/simplecallback/src/main/java/simplecallback/
sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/
Author: isilval
Date: Thu Dec 7 06:27:02 2006
New Revision: 483467
URL: http://svn.apache.org/viewvc?view=rev&rev=483467
Log:
Adding check for NoRegisteredCallbackException
Modified:
incubator/tuscany/java/samples/sca/simplecallback/src/main/java/simplecallback/MyServiceImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaTargetInvoker.java
Modified: incubator/tuscany/java/samples/sca/simplecallback/src/main/java/simplecallback/MyServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/simplecallback/src/main/java/simplecallback/MyServiceImpl.java?view=diff&rev=483467&r1=483466&r2=483467
==============================================================================
--- incubator/tuscany/java/samples/sca/simplecallback/src/main/java/simplecallback/MyServiceImpl.java (original)
+++ incubator/tuscany/java/samples/sca/simplecallback/src/main/java/simplecallback/MyServiceImpl.java Thu Dec 7 06:27:02 2006
@@ -42,6 +42,10 @@
public void someMethod(String arg) {
// invoke the callback
- myServiceCallback.receiveResult(arg + " -> receiveResult");
+ try {
+ myServiceCallback.receiveResult(arg + " -> receiveResult");
+ } catch(RuntimeException e) {
+ System.out.println("RuntimeException invoking receiveResult: " + e.toString());
+ }
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java?view=diff&rev=483467&r1=483466&r2=483467
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java Thu Dec 7 06:27:02 2006
@@ -75,14 +75,16 @@
public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire) {
Method[] methods;
+ Class callbackClass = null;
if (operation.isCallback()) {
- methods = operation.getServiceContract().getCallbackClass().getMethods();
+ callbackClass = operation.getServiceContract().getCallbackClass();
+ methods = callbackClass.getMethods();
} else {
methods = operation.getServiceContract().getInterfaceClass().getMethods();
}
Method method = findMethod(operation, methods);
- return new JavaTargetInvoker(method, this, callbackWire, workContext, monitor);
+ return new JavaTargetInvoker(method, this, callbackWire, callbackClass, workContext, monitor);
}
protected void onServiceWire(InboundWire wire) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaTargetInvoker.java?view=diff&rev=483467&r1=483466&r2=483467
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaTargetInvoker.java Thu Dec 7 06:27:02 2006
@@ -29,6 +29,7 @@
import org.apache.tuscany.spi.extension.TargetInvokerExtension;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
+import org.osoa.sca.NoRegisteredCallbackException;
import static org.apache.tuscany.core.util.JavaIntrospectionHelper.findClosestMatchingMethod;
import static org.apache.tuscany.core.util.JavaIntrospectionHelper.getAllUniquePublicProtectedMethods;
@@ -42,21 +43,36 @@
protected Method operation;
protected JavaAtomicComponent component;
protected Object target;
+ protected Class callbackClass;
public JavaTargetInvoker(Method operation,
JavaAtomicComponent component,
InboundWire wire,
+ Class callbackClass,
WorkContext context,
ExecutionMonitor monitor) {
super(wire, context, monitor);
assert operation != null : "Operation method cannot be null";
this.operation = operation;
this.component = component;
+ this.callbackClass = callbackClass;
+ }
+
+ public JavaTargetInvoker(Method operation,
+ JavaAtomicComponent component,
+ InboundWire callbackWire,
+ WorkContext context,
+ ExecutionMonitor monitor) {
+ this(operation, component, callbackWire, null, context, monitor);
}
public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException {
try {
Object instance = getInstance(sequence);
+ if (callbackClass != null && !callbackClass.isInstance(instance)) {
+ throw new NoRegisteredCallbackException("Instance is does not implement callback: "
+ + callbackClass.toString());
+ }
if (!operation.getDeclaringClass().isInstance(instance)) {
Set<Method> methods = getAllUniquePublicProtectedMethods(instance.getClass());
Method newOperation = findClosestMatchingMethod(operation.getName(),
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org