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/28 00:04:36 UTC

svn commit: r381478 - in /incubator/tuscany/java/sca: container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/ container.java/src/test/java/org/apache/tuscany/container/java/mock/ container.java/src/test/java/org/apache/tusca...

Author: jmarino
Date: Mon Feb 27 15:04:33 2006
New Revision: 381478

URL: http://svn.apache.org/viewcvs?rev=381478&view=rev
Log:
entry point implementation - passes a basic test exposing a Java impl over the Foo binding but not thoroughly tested; requires more refinement and testing

Added:
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
Modified:
    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/FooBindingBuilder.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingWireBuilder.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooEPTargetInvoker.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/EntryPointRuntimeConfiguration.java

Added: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java?rev=381478&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java (added)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/integration/binding/EntryPointToJavaTestCase.java Mon Feb 27 15:04:33 2006
@@ -0,0 +1,115 @@
+/**
+ * 
+ * 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.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+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.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.EntryPointContext;
+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;
+
+/**
+ * 
+ * 
+ * @version $Rev$ $Date$
+ */
+public class EntryPointToJavaTestCase extends TestCase {
+
+    private Method hello;
+
+    public void setUp() throws Exception {
+        hello = HelloWorldService.class.getMethod("hello", new Class[] { String.class });
+    }
+
+    public void testEPToJava() throws Throwable {
+        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.setPolicyBuilder(refBuilder);
+        builders.add(javaBuilder);
+
+        FooBindingBuilder fooBindingBuilder = new FooBindingBuilder();
+        fooBindingBuilder.setMessageFactory(msgFactory);
+        fooBindingBuilder.setProxyFactoryFactory(proxyFactoryFactory);
+        HierarchicalBuilder refBuilder = new HierarchicalBuilder();
+        MockInterceptorBuilder interceptorBuilder = new MockInterceptorBuilder(mockInterceptor, false);
+        refBuilder.addBuilder(interceptorBuilder);
+        fooBindingBuilder.setPolicyBuilder(refBuilder);
+        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.createModuleWithEntryPoint());
+        child.fireEvent(EventContext.MODULE_START, null);
+        EntryPointContext ctx = (EntryPointContext) child.getContext("source");
+        Assert.assertNotNull(ctx);
+        InvocationHandler handler = (InvocationHandler) ctx.getInstance(null);
+        Assert.assertEquals(0, mockInterceptor.getCount());
+        Object response = handler.invoke(null, hello, new Object[] { "foo" });
+        Assert.assertEquals("Hello foo", response);
+        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/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=381478&r1=381477&r2=381478&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 Mon Feb 27 15:04:33 2006
@@ -124,7 +124,9 @@
         cref.getTargetConfiguredServices().add(cTargetService);
         cref.initialize(assemblyContext);
         sourceEP.setConfiguredReference(cref);
+        sourceEP.getConfiguredService().getService().setName("HelloWorldService");
         sourceEP.initialize(assemblyContext);
+        
 
         Module module = factory.createModule();
         module.setName("test.module");

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=381478&r1=381477&r2=381478&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 Mon Feb 27 15:04:33 2006
@@ -127,7 +127,7 @@
                 InvocationConfiguration iConfig = new InvocationConfiguration(method);
                 iConfigMap.put(method, iConfig);
             }
-            QualifiedName qName = new QualifiedName(ep.getName() + "/" + service.getName());
+            QualifiedName qName = new QualifiedName(ep.getConfiguredReference().getTargetConfiguredServices().get(0).getAggregatePart().getName() + "/" + service.getName());
             ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, null, messageFactory);
             proxyFactory.setBusinessInterface(serviceContract.getInterface());
             proxyFactory.setProxyConfiguration(pConfiguration);

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingWireBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingWireBuilder.java?rev=381478&r1=381477&r2=381478&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingWireBuilder.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooBindingWireBuilder.java Mon Feb 27 15:04:33 2006
@@ -25,9 +25,9 @@
                         .getPartName(), targetScopeContext);
                 sourceInvocationConfig.setTargetInvoker(invoker);
             } else {
-                FooEPTargetInvoker invoker = new FooEPTargetInvoker(sourceFactory.getProxyConfiguration().getTargetName()
-                        .getPartName(), sourceInvocationConfig.getMethod(), targetScopeContext);
-                sourceInvocationConfig.setTargetInvoker(invoker);
+//                FooEPTargetInvoker invoker = new FooEPTargetInvoker(sourceFactory.getProxyConfiguration().getTargetName()
+//                        .getPartName(), sourceInvocationConfig.getMethod(), targetScopeContext);
+//                sourceInvocationConfig.setTargetInvoker(invoker);
 
             }
             // if (downScope) {

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooEPTargetInvoker.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooEPTargetInvoker.java?rev=381478&r1=381477&r2=381478&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooEPTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/binding/foo/FooEPTargetInvoker.java Mon Feb 27 15:04:33 2006
@@ -59,7 +59,7 @@
             context = (EntryPointContext) iContext;
         }
         try {
-            InvocationHandler handler = (InvocationHandler) context.getInstance(null);
+            InvocationHandler handler = (InvocationHandler) context.getImplementationInstance();
             if (payload != null) {
                 return handler.invoke(null, operation, new Object[] { payload });
             } else {

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/EntryPointRuntimeConfiguration.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/EntryPointRuntimeConfiguration.java?rev=381478&r1=381477&r2=381478&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/EntryPointRuntimeConfiguration.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/impl/EntryPointRuntimeConfiguration.java Mon Feb 27 15:04:33 2006
@@ -46,6 +46,7 @@
         assert (name != null) : "Entry point name was null";
         assert (msgFactory != null) : "Message factory was null";
         this.name = name;
+        this.epServiceName = serviceName;
         this.msgFactory = msgFactory;
     }