You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/02/25 20:46:14 UTC

svn commit: r380973 - in /incubator/tuscany/java/sca: container.java/src/test/java/org/apache/tuscany/container/java/integration/ container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ container.java/src/test/java/org/apach...

Author: jmarino
Date: Sat Feb 25 11:46:12 2006
New Revision: 380973

URL: http://svn.apache.org/viewcvs?rev=380973&view=rev
Log:
more external service work

Added:
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/HelloWorldClient.java
Modified:
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockAssemblyFactory.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBinding.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingBuilder.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooClient.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooExternalServiceRuntimeConfiguration.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooTargetInvoker.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/ExternalServiceContextImpl.java

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/JavaBuilderContextIntegrationTestCase.java Sat Feb 25 11:46:12 2006
@@ -35,6 +35,7 @@
 import org.apache.tuscany.core.context.EventContext;
 import org.apache.tuscany.core.context.impl.AggregateContextImpl;
 import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
 import org.apache.tuscany.core.message.MessageFactory;
 import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
 import org.apache.tuscany.core.runtime.RuntimeContext;
@@ -71,9 +72,11 @@
         builders.add(new SystemEntryPointBuilder());
         builders.add(new SystemExternalServiceBuilder());
 
+        ProxyFactoryFactory proxyFactoryFactory =new JDKProxyFactoryFactory();
+        
         JavaComponentContextBuilder javaBuilder = new JavaComponentContextBuilder();
         javaBuilder.setMessageFactory(msgFactory);
-        javaBuilder.setProxyFactoryFactory(new JDKProxyFactoryFactory());
+        javaBuilder.setProxyFactoryFactory(proxyFactoryFactory);
 
         MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
         MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, true);

Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java?rev=380973&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/JavaToExternalServiceTestCase.java Sat Feb 25 11:46:12 2006
@@ -0,0 +1,102 @@
+/**
+ * 
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ * 
+ * Licensed 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.container.java.integration.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.container.java.assembly.mock.HelloWorldService;
+import org.apache.tuscany.container.java.builder.JavaComponentContextBuilder;
+import org.apache.tuscany.container.java.builder.JavaTargetWireBuilder;
+import org.apache.tuscany.container.java.builder.MockInterceptorBuilder;
+import org.apache.tuscany.container.java.invocation.mock.MockSyncInterceptor;
+import org.apache.tuscany.container.java.mock.MockAssemblyFactory;
+import org.apache.tuscany.container.java.mock.MockModuleFactory;
+import org.apache.tuscany.container.java.mock.binding.foo.FooBindingBuilder;
+import org.apache.tuscany.container.java.mock.binding.foo.FooBindingWireBuilder;
+import org.apache.tuscany.container.java.mock.components.GenericComponent;
+import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.builder.impl.DefaultWireBuilder;
+import org.apache.tuscany.core.builder.impl.HierarchicalBuilder;
+import org.apache.tuscany.core.context.AggregateContext;
+import org.apache.tuscany.core.context.EventContext;
+import org.apache.tuscany.core.context.impl.AggregateContextImpl;
+import org.apache.tuscany.core.invocation.jdk.JDKProxyFactoryFactory;
+import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
+import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
+import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.runtime.RuntimeContextImpl;
+import org.apache.tuscany.core.system.builder.SystemComponentContextBuilder;
+import org.apache.tuscany.core.system.builder.SystemEntryPointBuilder;
+import org.apache.tuscany.core.system.builder.SystemExternalServiceBuilder;
+import org.apache.tuscany.model.assembly.Scope;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+/**
+ * 
+ * 
+ * @version $Rev$ $Date$
+ */
+public class JavaToExternalServiceTestCase extends TestCase {
+
+    public void testJavaToES() throws Exception {
+        MessageFactory msgFactory = new MessageFactoryImpl();
+        ProxyFactoryFactory proxyFactoryFactory =new JDKProxyFactoryFactory();
+
+        List<RuntimeConfigurationBuilder> builders = new ArrayList();
+        builders.add((new SystemComponentContextBuilder()));
+        builders.add(new SystemEntryPointBuilder());
+        builders.add(new SystemExternalServiceBuilder());
+
+        JavaComponentContextBuilder javaBuilder = new JavaComponentContextBuilder();
+        javaBuilder.setMessageFactory(msgFactory);
+        javaBuilder.setProxyFactoryFactory(proxyFactoryFactory);
+
+        MockSyncInterceptor mockInterceptor = new MockSyncInterceptor();
+        MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, true);
+        HierarchicalBuilder refBuilder = new HierarchicalBuilder();
+        refBuilder.addBuilder(interceptorBuilder);
+        javaBuilder.setReferenceBuilder(refBuilder);
+        builders.add(javaBuilder);
+
+        FooBindingBuilder fooBindingBuilder = new FooBindingBuilder();
+        fooBindingBuilder.setMessageFactory(msgFactory);
+        fooBindingBuilder.setProxyFactoryFactory(proxyFactoryFactory);
+        builders.add(fooBindingBuilder);
+        
+        DefaultWireBuilder defaultWireBuilder = new DefaultWireBuilder();
+
+        RuntimeContext runtime = new RuntimeContextImpl(null, null, builders, defaultWireBuilder);
+        runtime.addBuilder(new JavaTargetWireBuilder());
+        runtime.addBuilder(new FooBindingWireBuilder());
+        runtime.start();
+        runtime.getRootContext().registerModelObject(
+                MockAssemblyFactory.createSystemComponent("test.module", AggregateContextImpl.class.getName(), Scope.AGGREGATE));
+        AggregateContext child = (AggregateContext) runtime.getRootContext().getContext("test.module");
+        child.registerModelObject(MockModuleFactory.createModuleWithExerntalService());
+        child.fireEvent(EventContext.MODULE_START, null);
+        HelloWorldService source = (HelloWorldService) child.locateInstance("source");
+        Assert.assertNotNull(source);
+        Assert.assertEquals(0, mockInterceptor.getCount());
+        Assert.assertEquals("foo", source.hello("foo"));
+        Assert.assertEquals(1, mockInterceptor.getCount());
+        child.fireEvent(EventContext.MODULE_STOP, null);
+        runtime.stop();
+    }
+
+}
+

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockAssemblyFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockAssemblyFactory.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockAssemblyFactory.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockAssemblyFactory.java Sat Feb 25 11:46:12 2006
@@ -19,12 +19,15 @@
 import org.apache.tuscany.container.java.assembly.JavaAssemblyFactory;
 import org.apache.tuscany.container.java.assembly.JavaImplementation;
 import org.apache.tuscany.container.java.assembly.impl.JavaAssemblyFactoryImpl;
+import org.apache.tuscany.container.java.mock.binding.foo.FooBinding;
 import org.apache.tuscany.core.config.JavaIntrospectionHelper;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
 import org.apache.tuscany.core.system.assembly.SystemImplementation;
 import org.apache.tuscany.core.system.assembly.impl.SystemAssemblyFactoryImpl;
 import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.ConfiguredService;
+import org.apache.tuscany.model.assembly.ExternalService;
 import org.apache.tuscany.model.assembly.Scope;
 import org.apache.tuscany.model.assembly.Service;
 import org.apache.tuscany.model.assembly.SimpleComponent;
@@ -38,8 +41,9 @@
 public class MockAssemblyFactory {
 
     private static JavaAssemblyFactory factory = new JavaAssemblyFactoryImpl();
+
     private static SystemAssemblyFactory systemFactory = new SystemAssemblyFactoryImpl();
-    
+
     public static SimpleComponent createComponent(String name, Class type, Scope scope) throws NoSuchMethodException {
         SimpleComponent sc = factory.createSimpleComponent();
         JavaImplementation impl = factory.createJavaImplementation();
@@ -77,6 +81,26 @@
         sc.setName(name);
         sc.setComponentImplementation(impl);
         return sc;
+    }
+
+    /**
+     * Creates an external service configured with the 'Foo' test binding
+     */
+    public static ExternalService createFooBindingExternalService(String name, Class interfaz) throws NoSuchMethodException,
+            ClassNotFoundException {
+        ExternalService es = factory.createExternalService();
+        es.setName(name);
+        Service s = factory.createService();
+        JavaServiceContract ji = factory.createJavaServiceContract();
+        ji.setScope(Scope.MODULE);
+        ji.setInterface(interfaz);
+        s.setServiceContract(ji);
+        ConfiguredService configuredService = factory.createConfiguredService();
+        es.setConfiguredService(configuredService);
+
+        FooBinding binding = new FooBinding();
+        es.getBindings().add(binding);
+        return es;
     }
 
 }

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java Sat Feb 25 11:46:12 2006
@@ -1,12 +1,15 @@
 package org.apache.tuscany.container.java.mock;
 
+import org.apache.tuscany.container.java.assembly.mock.HelloWorldService;
 import org.apache.tuscany.container.java.mock.components.GenericComponent;
+import org.apache.tuscany.container.java.mock.components.HelloWorldClient;
 import org.apache.tuscany.container.java.mock.components.ModuleScopeComponentImpl;
 import org.apache.tuscany.model.assembly.AssemblyFactory;
 import org.apache.tuscany.model.assembly.AssemblyModelContext;
 import org.apache.tuscany.model.assembly.Component;
 import org.apache.tuscany.model.assembly.ConfiguredReference;
 import org.apache.tuscany.model.assembly.ConfiguredService;
+import org.apache.tuscany.model.assembly.ExternalService;
 import org.apache.tuscany.model.assembly.Module;
 import org.apache.tuscany.model.assembly.Reference;
 import org.apache.tuscany.model.assembly.Scope;
@@ -59,6 +62,40 @@
         return module;
     }
 
+    
+    public static Module createModuleWithExerntalService() throws Exception {
+        Component sourceComponent = MockAssemblyFactory.createComponent("source", HelloWorldClient.class,Scope.MODULE);
+        ExternalService targetES = MockAssemblyFactory.createFooBindingExternalService("target",HelloWorldService.class);
+
+        Service targetService = factory.createService();
+        JavaServiceContract targetContract = factory.createJavaServiceContract();
+        targetContract.setInterface(HelloWorldService.class);
+        targetService.setServiceContract(targetContract);
+        targetService.setName("HelloWorld");
+        ConfiguredService cTargetService = factory.createConfiguredService();
+        cTargetService.setService(targetService);
+        targetES.setConfiguredService(cTargetService);
+        targetES.initialize(assemblyContext);
+        
+        Reference ref = factory.createReference();
+        ConfiguredReference cref = factory.createConfiguredReference();
+        ref.setName("setHelloWorldService");
+        JavaServiceContract inter = factory.createJavaServiceContract();
+        inter.setInterface(HelloWorldService.class);
+        ref.setServiceContract(inter);
+        cref.setReference(ref);
+        cref.getTargetConfiguredServices().add(cTargetService);
+        cref.initialize(assemblyContext);
+        sourceComponent.getConfiguredReferences().add(cref);
+        sourceComponent.initialize(assemblyContext);
+
+        Module module = factory.createModule();
+        module.setName("test.module");
+        module.getComponents().add(sourceComponent);
+        module.getExternalServices().add(targetES);
+        module.initialize(assemblyContext);
+        return module;
+    }
 
 }
 

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBinding.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBinding.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBinding.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBinding.java Sat Feb 25 11:46:12 2006
@@ -27,12 +27,15 @@
         return false;
     }
 
+    private Object config;
+
     public void setRuntimeConfiguration(Object configuration) {
+        config = configuration;
     }
 
     public Object getRuntimeConfiguration() {
-        return null;
+        System.out.println("retting");
+        return config;
     }
 
 }
-

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingBuilder.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingBuilder.java Sat Feb 25 11:46:12 2006
@@ -1,16 +1,31 @@
 package org.apache.tuscany.container.java.mock.binding.foo;
 
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.tuscany.core.builder.BuilderException;
 import org.apache.tuscany.core.builder.ObjectFactory;
 import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
+import org.apache.tuscany.core.config.JavaIntrospectionHelper;
 import org.apache.tuscany.core.context.Context;
+import org.apache.tuscany.core.context.QualifiedName;
 import org.apache.tuscany.core.injection.ObjectCreationException;
+import org.apache.tuscany.core.invocation.InvocationConfiguration;
+import org.apache.tuscany.core.invocation.ProxyConfiguration;
+import org.apache.tuscany.core.invocation.impl.InvokerInterceptor;
+import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
 import org.apache.tuscany.core.message.MessageFactory;
 import org.apache.tuscany.core.runtime.RuntimeContext;
 import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.assembly.ConfiguredService;
 import org.apache.tuscany.model.assembly.ExternalService;
+import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.ServiceContract;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Scope;
 
@@ -60,18 +75,46 @@
     }
 
     public void build(AssemblyModelObject object, Context context) throws BuilderException {
-        if (!(object instanceof ExternalService)){
+        if (!(object instanceof ExternalService)) {
             return;
         }
-        ExternalService es = (ExternalService)object;
-        if (es.getBindings().size() <1 || !(es.getBindings().get(0) instanceof FooBinding)){
+        ExternalService es = (ExternalService) object;
+        if (es.getBindings().size() < 1 || !(es.getBindings().get(0) instanceof FooBinding)) {
             return;
         }
-        FooExternalServiceRuntimeConfiguration rc = new FooExternalServiceRuntimeConfiguration(es.getName(),new FooClientFactory());
-        es.getBindings().get(0).setRuntimeConfiguration(rc);
+
+        FooExternalServiceRuntimeConfiguration config = new FooExternalServiceRuntimeConfiguration(es.getName(),
+                new FooClientFactory());
+
+        ConfiguredService configuredService = es.getConfiguredService();
+        Service service = configuredService.getService();
+        ServiceContract serviceContract = service.getServiceContract();
+        Map<Method, InvocationConfiguration> iConfigMap = new HashMap();
+        ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
+        Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
+        for (Method method : javaMethods) {
+            InvocationConfiguration iConfig = new InvocationConfiguration(method);
+            iConfigMap.put(method, iConfig);
+        }
+        QualifiedName qName = new QualifiedName(es.getName() + "/" + service.getName());
+        ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, null, messageFactory);
+        proxyFactory.setBusinessInterface(serviceContract.getInterface());
+        proxyFactory.setProxyConfiguration(pConfiguration);
+        config.addTargetProxyFactory(service.getName(), proxyFactory);
+        configuredService.setProxyFactory(proxyFactory);
+//        if (referenceBuilder != null) {
+//            // invoke the reference builder to handle target-side metadata
+//            referenceBuilder.build(configuredService, parentContext);
+//        }
+        // add tail interceptor
+        for (InvocationConfiguration iConfig : (Collection<InvocationConfiguration>) iConfigMap.values()) {
+            iConfig.addTargetInterceptor(new InvokerInterceptor());
+        }
+
+        es.getConfiguredService().setRuntimeConfiguration(config);
     }
 
-    private class FooClientFactory implements ObjectFactory{
+    private class FooClientFactory implements ObjectFactory {
 
         public Object getInstance() throws ObjectCreationException {
             return new FooClient();

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooClient.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooClient.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooClient.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooClient.java Sat Feb 25 11:46:12 2006
@@ -13,6 +13,10 @@
  */
 package org.apache.tuscany.container.java.mock.binding.foo;
 
+import java.lang.reflect.Array;
+
+import org.apache.tuscany.core.context.TargetException;
+
 /**
  * A mock client for a transport binding
  * 
@@ -23,7 +27,11 @@
     public FooClient() {
     }
 
-    public String invoke(String msg) {
-        return msg;
+    public Object invoke(Object msg) {
+        if (msg!=null && msg.getClass().isArray() && Array.getLength(msg) == 1){
+            return Array.get(msg,0);
+        }else{
+            throw new TargetException("This binding only understands operations with a single parameter");
+        }
     }
 }

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooExternalServiceRuntimeConfiguration.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooExternalServiceRuntimeConfiguration.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooExternalServiceRuntimeConfiguration.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooExternalServiceRuntimeConfiguration.java Sat Feb 25 11:46:12 2006
@@ -68,7 +68,7 @@
     public void addTargetProxyFactory(String serviceName, ProxyFactory factory) {
         assert (serviceName != null) : "No service name specified";
         assert (factory != null) : "Proxy factory was null";
-        this.targetServiceName = name; // external services are configured with only one service
+        this.targetServiceName = serviceName; // external services are configured with only one service
         this.proxyFactory = factory;
     }
 

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooTargetInvoker.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooTargetInvoker.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooTargetInvoker.java Sat Feb 25 11:46:12 2006
@@ -24,6 +24,7 @@
 import org.apache.tuscany.core.message.Message;
 
 /**
+ * Responsible for invoking a mock transport binding client
  * 
  * @version $Rev$ $Date$
  */
@@ -35,8 +36,6 @@
 
     private ExternalServiceContext context;
 
-    public boolean cacheable;
-
     public FooTargetInvoker(String esName, ScopeContext container) {
         assert (esName != null) : "No external service name specified";
         assert (container != null) : "No scope container specified";
@@ -56,7 +55,11 @@
             context = (ExternalServiceContext) iContext;
         }
         FooClient client = (FooClient) context.getImplementationInstance(true);
-        return client.invoke(payload.toString());
+        if (payload != null) {
+            return client.invoke(payload);
+        } else {
+            return client.invoke(null);
+        }
     }
 
     public boolean isCacheable() {

Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/HelloWorldClient.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/HelloWorldClient.java?rev=380973&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/HelloWorldClient.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/components/HelloWorldClient.java Sat Feb 25 11:46:12 2006
@@ -0,0 +1,39 @@
+/**
+ * 
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ * 
+ * Licensed 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.container.java.mock.components;
+
+import org.apache.tuscany.container.java.assembly.mock.HelloWorldService;
+
+/**
+ * 
+ * 
+ * @version $Rev$ $Date$
+ */
+public class HelloWorldClient implements HelloWorldService{
+
+    public HelloWorldClient() {
+    }
+
+    private HelloWorldService service;
+    
+    public void setHelloWorldService(HelloWorldService service){
+        this.service = service;
+    }
+
+    public String hello(String name) {
+        return service.hello(name);
+    }
+    
+}
+

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/ExternalServiceContextImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/ExternalServiceContextImpl.java?rev=380973&r1=380972&r2=380973&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/ExternalServiceContextImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/context/impl/ExternalServiceContextImpl.java Sat Feb 25 11:46:12 2006
@@ -23,7 +23,7 @@
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 
 /**
- * The default implementation of an external service
+ * The default implementation of an external service context
  * 
  * @version $Rev$ $Date$
  */