Added:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java?view=auto&rev=468018
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
(added)
+++
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
Thu Oct 26 07:33:58 2006
@@ -0,0 +1,85 @@
+/*
+ * 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 org.apache.tuscany.spi.extension;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.MessageId;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TargetInvokerExtensionTestCase extends TestCase {
+
+ public void testNonBlockingDispatch() {
+ MessageId id = new MessageId();
+ Object from = new Object();
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ wire.addMapping(EasyMock.eq(id), EasyMock.eq(from));
+ EasyMock.replay(wire);
+ WorkContext context;
+ context = EasyMock.createMock(WorkContext.class);
+ context.setCurrentMessageId(EasyMock.isNull());
+ context.setCurrentCorrelationId(EasyMock.eq(id));
+ EasyMock.replay(context);
+ ExecutionMonitor monitor =
EasyMock.createNiceMock(ExecutionMonitor.class);
+ Target target = EasyMock.createMock(Target.class);
+ target.invoke("test");
+ EasyMock.replay(target);
+ Invoker invoker = new Invoker(wire, context, monitor, target);
+ Message msg = new MessageImpl();
+ msg.setMessageId(id);
+ msg.setFromAddress(from);
+ msg.setBody("test");
+ invoker.invoke(msg);
+ EasyMock.verify(wire);
+ EasyMock.verify(context);
+ EasyMock.verify(target);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ }
+
+ private class Invoker extends TargetInvokerExtension {
+ private Target target;
+
+ public Invoker(InboundWire wire, WorkContext workContext,
ExecutionMonitor monitor, Target target) {
+ super(wire, workContext, monitor);
+ this.target = target;
+ }
+
+ public Object invokeTarget(final Object payload) throws
InvocationTargetException {
+ target.invoke((String) payload);
+ return null;
+ }
+ }
+
+ private interface Target {
+ void invoke(String msg);
+ }
+}
Propchange:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java
(original)
+++
incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java
Thu Oct 26 07:33:58 2006
@@ -38,6 +38,7 @@
private Remote proxy;
public RMIInvoker(RMIHost rmiHost, String host, String port, String
svcName, Method remoteMethod) {
+ super(null, null, null);
// assert remoteMethod.isAccessible();
this.remoteMethod = remoteMethod;
this.host = host;
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
Thu Oct 26 07:33:58 2006
@@ -27,6 +27,7 @@
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
@@ -42,33 +43,29 @@
private final List<Class<?>> services;
//FIXME properties should move up to AtomicComponentExtension
private final Map<String, ObjectFactory> properties;
- private AsyncMonitor monitor;
- public GroovyAtomicComponent(GroovyConfiguration configuration,
AsyncMonitor monitor) {
+ public GroovyAtomicComponent(GroovyConfiguration configuration) {
super(configuration.getName(),
configuration.getParent(),
configuration.getScopeContainer(),
configuration.getWireService(),
configuration.getWorkContext(),
- null, configuration.getInitLevel());
+ null,
+ configuration.getMonitor(),
+ configuration.getInitLevel());
this.groovyClass = configuration.getGroovyClass();
this.services =
Collections.unmodifiableList(configuration.getServices());
this.properties = new HashMap<String, ObjectFactory>();
assert groovyClass != null;
- this.monitor = monitor;
}
public List<Class<?>> getServiceInterfaces() {
return services;
}
- public TargetInvoker createTargetInvoker(String targetName, Operation
operation) {
- return new GroovyInvoker(operation.getName(), this);
- }
-
- public TargetInvoker createAsyncTargetInvoker(InboundWire wire, Operation
operation) {
- return new AsyncGroovyInvoker(operation.getName(), wire, this,
monitor, workContext);
+ public TargetInvoker createTargetInvoker(String targetName, Operation
operation, InboundWire callbackWire) {
+ return new GroovyInvoker(operation.getName(), this, callbackWire,
workContext, monitor);
}
public Object createInstance() throws ObjectCreationException {
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
Thu Oct 26 07:33:58 2006
@@ -49,8 +49,8 @@
}
public Component build(CompositeComponent parent,
- ComponentDefinition<GroovyImplementation>
componentDefinition,
- DeploymentContext deploymentContext)
+ ComponentDefinition<GroovyImplementation>
componentDefinition,
+ DeploymentContext deploymentContext)
throws BuilderConfigException {
String name = componentDefinition.getName();
@@ -103,7 +103,8 @@
configuration.setWorkContext(workContext);
configuration.setInitLevel(initLevel);
configuration.setServices(services);
- GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration, null);
+ configuration.setMonitor(monitor);
+ GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration);
// handle properties
for (Property<?> property : componentType.getProperties().values()) {
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java
Thu Oct 26 07:33:58 2006
@@ -28,6 +28,7 @@
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
import groovy.lang.GroovyObject;
@@ -50,6 +51,7 @@
private String name;
private Class<? extends GroovyObject> groovyClass;
private List<Class<?>> services;
+ private ExecutionMonitor monitor;
public String getName() {
return name;
@@ -147,4 +149,11 @@
this.workContext = workContext;
}
+ public ExecutionMonitor getMonitor() {
+ return monitor;
+ }
+
+ public void setMonitor(ExecutionMonitor monitor) {
+ this.monitor = monitor;
+ }
}
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java
Thu Oct 26 07:33:58 2006
@@ -20,9 +20,10 @@
import java.lang.reflect.InvocationTargetException;
-import org.apache.tuscany.spi.wire.InvocationRuntimeException;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
+import org.apache.tuscany.spi.extension.TargetInvokerExtension;
+import org.apache.tuscany.spi.wire.InboundWire;
import groovy.lang.GroovyObject;
@@ -31,14 +32,19 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class GroovyInvoker implements TargetInvoker, Cloneable {
+public class GroovyInvoker extends TargetInvokerExtension {
protected GroovyAtomicComponent component;
protected String operation;
protected boolean cacheable;
- public GroovyInvoker(String operation, GroovyAtomicComponent context) {
- this.component = context;
+ public GroovyInvoker(String operation,
+ GroovyAtomicComponent component,
+ InboundWire wire,
+ WorkContext context,
+ ExecutionMonitor monitor) {
+ super(wire, context, monitor);
+ this.component = component;
this.operation = operation;
}
@@ -65,18 +71,6 @@
} catch (Exception ex) {
throw new InvocationTargetException(ex);
}
- }
-
- public Message invoke(Message msg) throws InvocationRuntimeException {
- try {
- Object resp = invokeTarget(msg.getBody());
- msg.setBody(resp);
- } catch (InvocationTargetException e) {
- msg.setBodyWithFault(e.getCause());
- } catch (Throwable e) {
- msg.setBodyWithFault(e);
- }
- return msg;
}
public GroovyInvoker clone() throws CloneNotSupportedException {
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/AsyncInvokerTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/AsyncInvokerTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/AsyncInvokerTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/AsyncInvokerTestCase.java
Thu Oct 26 07:33:58 2006
@@ -25,6 +25,7 @@
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.MessageImpl;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
import groovy.lang.GroovyObject;
import junit.framework.TestCase;
@@ -51,7 +52,7 @@
GroovyAtomicComponent component =
EasyMock.createMock(GroovyAtomicComponent.class);
expect(component.getTargetInstance()).andReturn(instance);
EasyMock.replay(component);
- AsyncMonitor monitor = createMock(AsyncMonitor.class);
+ ExecutionMonitor monitor = createMock(ExecutionMonitor.class);
replay(monitor);
WorkScheduler scheduler = createMock(WorkScheduler.class);
@@ -68,7 +69,7 @@
Method method = AsyncTarget.class.getMethod("invoke");
method.setAccessible(true);
InboundWire wire = createMock(InboundWire.class);
- AsyncGroovyInvoker invoker = new AsyncGroovyInvoker("invoke", wire,
component, monitor, context);
+ GroovyInvoker invoker = new GroovyInvoker("invoke", component, wire,
context, monitor);
Message msg = new MessageImpl();
invoker.invoke(msg);
verify(instance);
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java
Thu Oct 26 07:33:58 2006
@@ -28,10 +28,10 @@
import org.apache.tuscany.spi.loader.MissingResourceException;
import junit.framework.TestCase;
-import static org.easymock.classextension.EasyMock.createMock;
import static org.easymock.classextension.EasyMock.expect;
import static org.easymock.classextension.EasyMock.replay;
import static org.easymock.classextension.EasyMock.verify;
+import org.easymock.classextension.EasyMock;
/**
* @version $Rev$ $Date$
@@ -91,12 +91,12 @@
protected void setUp() throws Exception {
super.setUp();
- registry = createMock(LoaderRegistry.class);
+ registry = EasyMock.createMock(LoaderRegistry.class);
loader = new ImplementationLoader(registry);
- parent = createMock(CompositeComponent.class);
- reader = createMock(XMLStreamReader.class);
- deploymentContext = createMock(DeploymentContext.class);
- classLoader = createMock(ClassLoader.class);
+ parent = EasyMock.createMock(CompositeComponent.class);
+ reader = EasyMock.createMock(XMLStreamReader.class);
+ deploymentContext = EasyMock.createMock(DeploymentContext.class);
+ classLoader = EasyMock.createMock(ClassLoader.class);
}
}
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
Thu Oct 26 07:33:58 2006
@@ -65,7 +65,7 @@
configuration.setServices(services);
configuration.setScopeContainer(scopeContainer);
configuration.setWireService(createWireService());
- GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration, null);
+ GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration);
ObjectFactory<?> factory = createMock(ObjectFactory.class);
expect((String) factory.getInstance()).andReturn("bar");
replay(factory);
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
Thu Oct 26 07:33:58 2006
@@ -58,7 +58,7 @@
configuration.setServices(services);
configuration.setScopeContainer(scopeContainer);
configuration.setWireService(createWireService());
- GroovyAtomicComponent context = new
GroovyAtomicComponent(configuration, null);
+ GroovyAtomicComponent context = new
GroovyAtomicComponent(configuration);
GroovyObject object = (GroovyObject) context.getServiceInstance();
assertEquals("foo", object.invokeMethod("greet", "foo"));
}
Modified:
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
Thu Oct 26 07:33:58 2006
@@ -92,7 +92,7 @@
configuration.setServices(services);
configuration.setScopeContainer(scopeContainer);
configuration.setWireService(createWireService());
- GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration, null);
+ GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration);
OutboundWire wire = createOutboundWire("wire", Greeting.class);
terminateWire(wire);
@@ -143,9 +143,9 @@
configuration.setServices(services);
configuration.setScopeContainer(scopeContainer);
configuration.setWireService(createWireService());
- GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration, null);
+ GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration);
Operation<Type> operation = new Operation<Type>("greet", null, null,
null, false, null);
- TargetInvoker invoker = component.createTargetInvoker(null, operation);
+ TargetInvoker invoker = component.createTargetInvoker(null, operation,
null);
assertEquals("foo", invoker.invokeTarget(new String[]{"foo"}));
}
@@ -162,11 +162,11 @@
configuration.setServices(services);
configuration.setScopeContainer(scopeContainer);
configuration.setWireService(createWireService());
- GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration, null);
+ GroovyAtomicComponent component = new
GroovyAtomicComponent(configuration);
InboundWire wire = createInboundWire("Greeting", Greeting.class);
terminateWire(wire);
for (InboundInvocationChain chain :
wire.getInvocationChains().values()) {
- chain.setTargetInvoker(component.createTargetInvoker(null,
chain.getOperation()));
+ chain.setTargetInvoker(component.createTargetInvoker(null,
chain.getOperation(), null));
}
component.addInboundWire(wire);
Greeting greeting = (Greeting)
component.getServiceInstance("Greeting");
Modified:
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
Thu Oct 26 07:33:58 2006
@@ -28,6 +28,7 @@
import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
@@ -50,8 +51,9 @@
public JavaScriptComponent(String name, RhinoScript rhinoScript,
Map<String, Object> properties, List<Class<?>> services,
CompositeComponent parent, ScopeContainer
scopeContainer, WireService wireService,
- WorkContext workContext) {
- super(name, parent, scopeContainer, wireService, workContext, null, 0);
+ WorkContext workContext,
+ ExecutionMonitor monitor) {
+ super(name, parent, scopeContainer, wireService, workContext, null,
monitor, 0);
this.rhinoScript = rhinoScript;
this.services = services;
@@ -85,8 +87,8 @@
return rhinoScript.createRhinoScriptInstance(context);
}
- public TargetInvoker createTargetInvoker(String targetName, Operation
operation) {
- return new JavaScriptInvoker(operation.getName(),
(Class)operation.getOutputType().getLogical(), this);
+ public TargetInvoker createTargetInvoker(String targetName, Operation
operation, InboundWire callbackWire) {
+ return new JavaScriptInvoker(operation.getName(), this, callbackWire,
workContext, monitor);
}
// TODO: move all the following up to AtomicComponentExtension?
Modified:
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponentBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponentBuilder.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponentBuilder.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponentBuilder.java
Thu Oct 26 07:33:58 2006
@@ -103,7 +103,7 @@
scopeContainer = scopeRegistry.getScopeContainer(scope);
}
- return new JavaScriptComponent(name, rhinoScript, properties,
services, parent, scopeContainer, wireService, workContext);
+ return new JavaScriptComponent(name, rhinoScript, properties,
services, parent, scopeContainer, wireService, workContext , monitor);
}
private void enhanceRhinoScript(ServiceDefinition serviceDefn,
JavaScriptImplementation implementation) throws BuilderConfigException {
Modified:
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
Thu Oct 26 07:33:58 2006
@@ -22,6 +22,9 @@
import org.apache.tuscany.container.javascript.rhino.RhinoScriptInstance;
import org.apache.tuscany.spi.extension.TargetInvokerExtension;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.component.WorkContext;
/**
* Dispatches to a JavaScript implementation instance
@@ -33,13 +36,11 @@
private JavaScriptComponent context;
private String functionName;
-
- private Class responseClass;
- public JavaScriptInvoker(String functionName, Class respClass,
JavaScriptComponent context) {
+ public JavaScriptInvoker(String functionName, JavaScriptComponent context,
InboundWire wire, WorkContext workContext, ExecutionMonitor monitor) {
+ super(wire, workContext, monitor);
this.functionName = functionName;
this.context = context;
- this.responseClass = respClass;
}
/**
@@ -47,7 +48,7 @@
*/
public Object invokeTarget(final Object payload) throws
InvocationTargetException {
RhinoScriptInstance target = context.getTargetInstance();
- return target.invokeFunction(functionName, (Object[]) payload,
responseClass);
+ return target.invokeFunction(functionName, (Object[]) payload);
}
}
Modified:
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
Thu Oct 26 07:33:58 2006
@@ -121,10 +121,10 @@
services.add(Greeting.class);
JavaScriptComponent context =
new JavaScriptComponent("source", implClass2, new HashMap<String,
Object>(), services, null, scope,
- ArtifactFactory.createWireService(), null);
+ ArtifactFactory.createWireService(), null, null);
scope.register(context);
Operation<Type> operation = new Operation<Type>("greet", null, null,
null, false, null);
- TargetInvoker invoker = context.createTargetInvoker(null, operation);
+ TargetInvoker invoker = context.createTargetInvoker(null, operation,
null);
assertEquals("foo", invoker.invokeTarget(new String[]{"foo"}));
scope.stop();
}
@@ -139,13 +139,13 @@
services.add(Greeting.class);
JavaScriptComponent context =
new JavaScriptComponent("source", implClass2, new HashMap<String,
Object>(), services, null, scope,
- ArtifactFactory.createWireService(), null);
+ ArtifactFactory.createWireService(), null, null);
scope.register(context);
InboundWire wire = ArtifactFactory.createInboundWire("Greeting",
Greeting.class);
ArtifactFactory.terminateWire(wire);
for (InboundInvocationChain chain :
wire.getInvocationChains().values()) {
- chain.setTargetInvoker(context.createTargetInvoker(null,
chain.getOperation()));
+ chain.setTargetInvoker(context.createTargetInvoker(null,
chain.getOperation(), null));
}
context.addInboundWire(wire);
Greeting greeting = (Greeting) context.getServiceInstance("Greeting");
Modified:
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponent.java
Thu Oct 26 07:33:58 2006
@@ -28,6 +28,7 @@
import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
@@ -58,8 +59,9 @@
CompositeComponent parent,
ScopeContainer scopeContainer,
WireService wireService,
- WorkContext workContext) {
- super(name, parent, scopeContainer, wireService, workContext, null, 0);
+ WorkContext workContext,
+ ExecutionMonitor monitor) {
+ super(name, parent, scopeContainer, wireService, workContext, null,
monitor, 0);
this.rubyScript = rubyScript;
this.rubyClassName = rubyClassName;
@@ -95,11 +97,16 @@
return instance;
}
- public TargetInvoker createTargetInvoker(String targetName, Operation
operation) {
+ public TargetInvoker createTargetInvoker(String targetName, Operation
operation, InboundWire callbackWire) {
/*Method[] methods =
operation.getServiceContract().getInterfaceClass().getMethods();
Method method = findMethod(operation,
methods);*/
- return new RubyInvoker(operation.getName(), this,
operation.getOutputType().getPhysical().getClass());
+ return new RubyInvoker(operation.getName(),
+ this,
+ operation.getOutputType().getPhysical().getClass(),
+ callbackWire,
+ workContext,
+ monitor);
}
// TODO: move all the following up to AtomicComponentExtension?
Modified:
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponentBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponentBuilder.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponentBuilder.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyComponentBuilder.java
Thu Oct 26 07:33:58 2006
@@ -88,6 +88,7 @@
parent,
scopeContainer,
wireService,
- workContext);
+ workContext,
+ monitor);
}
}
Modified:
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyInvoker.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyInvoker.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.ruby/src/main/java/org/apache/tuscany/container/ruby/RubyInvoker.java
Thu Oct 26 07:33:58 2006
@@ -20,12 +20,16 @@
import java.lang.reflect.InvocationTargetException;
-import org.apache.tuscany.container.ruby.rubyscript.RubyScriptInstance;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.extension.ExecutionMonitor;
import org.apache.tuscany.spi.extension.TargetInvokerExtension;
+import org.apache.tuscany.spi.wire.InboundWire;
+
+import org.apache.tuscany.container.ruby.rubyscript.RubyScriptInstance;
/**
* Dispatches to a JavaScript implementation instance
- *
+ *
* @version $$Rev$$ $$Date$$
*/
public class RubyInvoker extends TargetInvokerExtension {
@@ -36,7 +40,13 @@
private Class returnType;
- public RubyInvoker(String functionName, RubyComponent context, Class
returnType) {
+ public RubyInvoker(String functionName,
+ RubyComponent context,
+ Class returnType,
+ InboundWire wire,
+ WorkContext workContext,
+ ExecutionMonitor monitor) {
+ super(wire, workContext, monitor);
this.functionName = functionName;
this.context = context;
this.returnType = returnType;
@@ -48,8 +58,8 @@
public Object invokeTarget(final Object payload) throws
InvocationTargetException {
RubyScriptInstance target = context.getTargetInstance();
return target.invokeFunction(functionName,
- (Object[]) payload,
- returnType);
+ (Object[]) payload,
+ returnType);
}
}
Modified:
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.ruby/src/test/java/org/apache/tuscany/container/ruby/WireTestCase.java
Thu Oct 26 07:33:58 2006
@@ -20,7 +20,6 @@
import static org.easymock.EasyMock.reportMatcher;
-import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
@@ -32,11 +31,9 @@
import org.apache.tuscany.container.ruby.rubyscript.RubyScript;
import org.apache.tuscany.core.component.scope.ModuleScopeContainer;
import org.apache.tuscany.spi.model.DataType;
-import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.test.ArtifactFactory;
import org.easymock.IArgumentMatcher;
@@ -126,7 +123,8 @@
null,
scope,
ArtifactFactory.createWireService(),
- null);
+ null,
+ null);
scope.register(context);
DataType<String> returnDataType = new DataType<String>(String.class,
String.class.getName());
// Operation<String> operation = new Operation<String>("greet",
@@ -161,7 +159,8 @@
null,
scope,
ArtifactFactory.createWireService(),
- null);
+ null,
+ null);
scope.register(context);
InboundWire wire = ArtifactFactory.createInboundWire("Greeting",
@@ -169,7 +168,7 @@
ArtifactFactory.terminateWire(wire);
for (InboundInvocationChain chain :
wire.getInvocationChains().values()) {
chain.setTargetInvoker(context.createTargetInvoker(null,
-
chain.getOperation()));
+
chain.getOperation(), null));
}
context.addInboundWire(wire);
Greeting greeting = (Greeting) context.getServiceInstance("Greeting");
Modified:
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/AsyncInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/AsyncInvoker.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/AsyncInvoker.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/AsyncInvoker.java
Thu Oct 26 07:33:58 2006
@@ -119,7 +119,7 @@
}
}
- public AsyncInvoker clone() {
+ public AsyncInvoker clone() throws CloneNotSupportedException {
AsyncInvoker invoker = (AsyncInvoker) super.clone();
invoker.workScheduler = this.workScheduler;
invoker.monitor = this.monitor;
Modified:
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperComponent.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperComponent.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperComponent.java
Thu Oct 26 07:33:58 2006
@@ -52,7 +52,7 @@
public ScriptHelperComponent(String name, ScriptHelperInstanceFactory
instanceFactory, Map<String, Object> properties, List<Class<?>> services,
CompositeComponent parent, ScopeContainer scopeContainer,
WireService wireService, WorkContext workContext, WorkScheduler
workScheduler) {
- super(name, parent, scopeContainer, wireService, workContext,
workScheduler, 0);
+ super(name, parent, scopeContainer, wireService, workContext,
workScheduler, null, 0);
this.instanceFactory = instanceFactory;
this.services = services;
@@ -74,8 +74,8 @@
return instanceFactory.createInstance(services, context);
}
-
- public TargetInvoker createTargetInvoker(String targetName, Operation
operation) {
+
+ public TargetInvoker createTargetInvoker(String targetName, Operation
operation, InboundWire callbackWire) {
Method[] methods =
operation.getServiceContract().getInterfaceClass().getMethods();
Method method = findMethod(operation, methods);
return new ScriptHelperInvoker(method.getName(), this);
Modified:
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperInvoker.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperInvoker.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/helper/ScriptHelperInvoker.java
Thu Oct 26 07:33:58 2006
@@ -32,6 +32,7 @@
protected String functionName;
public ScriptHelperInvoker(String functionName, ScriptHelperComponent
component) {
+ super(null, null, null);
this.functionName = functionName;
this.component = component;
}
Modified:
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/AsyncInvokerTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/AsyncInvokerTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/AsyncInvokerTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/AsyncInvokerTestCase.java
Thu Oct 26 07:33:58 2006
@@ -80,7 +80,7 @@
verify(instance);
}
- public void testClone() {
+ public void testClone() throws CloneNotSupportedException {
AsyncInvoker invoker = new AsyncInvoker(null, null,
null,null,null,null);
assertNotNull(invoker.clone());
}
Modified:
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/ScriptHelperComponentTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/ScriptHelperComponentTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/ScriptHelperComponentTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/helper/ScriptHelperComponentTestCase.java
Thu Oct 26 07:33:58 2006
@@ -41,7 +41,7 @@
Operation operation = new Operation("hashCode",
null,null,null,false,null);
ServiceContract contract = new ServiceContract(List.class){};
operation.setServiceContract(contract);
- TargetInvoker invoker = component.createTargetInvoker("hashCode",
operation);
+ TargetInvoker invoker = component.createTargetInvoker("hashCode",
operation, null);
assertNotNull(invoker);
}
Modified:
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
Thu Oct 26 07:33:58 2006
@@ -69,7 +69,8 @@
for (InboundInvocationChain chain :
wire.getInvocationChains().values()) {
// FIXME this should go to the connector and get policy and be
invoked from SpringComposite.prepare()
chain.addInterceptor(new SpringInterceptor());
-
chain.setTargetInvoker(component.createTargetInvoker(targetName.getPartName(),
chain.getOperation()));
+
chain.setTargetInvoker(component.createTargetInvoker(targetName.getPartName(),
chain.getOperation(),
+ null));
}
component.register(service);
}
Modified:
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
Thu Oct 26 07:33:58 2006
@@ -36,6 +36,7 @@
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.InboundWire;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
@@ -81,7 +82,7 @@
this.springContext = springContext;
}
- public TargetInvoker createTargetInvoker(String targetName, Operation
operation) {
+ public TargetInvoker createTargetInvoker(String targetName, Operation
operation, InboundWire callbackWire) {
ServiceContract contract = operation.getServiceContract();
Method[] methods = contract.getInterfaceClass().getMethods();
Method method = findMethod(operation, methods);
Modified:
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java?view=diff&rev=468018&r1=468017&r2=468018
==============================================================================
---
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
(original)
+++
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
Thu Oct 26 07:33:58 2006
@@ -57,7 +57,7 @@
Connector connector = ArtifactFactory.createConnector();
connector.connect(inboundWire, outboundWire, true);
for (InboundInvocationChain chain :
inboundWire.getInvocationChains().values()) {
- chain.setTargetInvoker(composite.createTargetInvoker("foo",
chain.getOperation()));
+ chain.setTargetInvoker(composite.createTargetInvoker("foo",
chain.getOperation(), null));
}
composite.register(service);
TestBean serviceInstance = (TestBean)
composite.getService("fooService").getServiceInstance();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]