You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2007/03/19 18:39:49 UTC

svn commit: r520022 - in /incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation: java/PhysicalBuilderTestCase.java system/builder/PhysicalBuilderTestCase.java

Author: jboynes
Date: Mon Mar 19 10:39:48 2007
New Revision: 520022

URL: http://svn.apache.org/viewvc?view=rev&rev=520022
Log:
add testcase hooking together optimized Java components

Added:
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java   (with props)
Modified:
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java?view=auto&rev=520022
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java Mon Mar 19 10:39:48 2007
@@ -0,0 +1,154 @@
+/*
+ * 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.core.integration.implementation.java;
+
+import java.lang.annotation.ElementType;
+import java.net.URI;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+import org.apache.tuscany.core.component.SimpleWorkContext;
+import org.apache.tuscany.core.component.instancefactory.IFProviderBuilderRegistry;
+import org.apache.tuscany.core.component.instancefactory.impl.DefaultIFProviderBuilderRegistry;
+import org.apache.tuscany.core.component.instancefactory.impl.ReflectiveIFProviderBuilder;
+import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
+import org.apache.tuscany.core.implementation.PojoWorkContextTunnel;
+import org.apache.tuscany.core.implementation.java.JavaComponent;
+import org.apache.tuscany.core.implementation.java.JavaPhysicalComponentBuilder;
+import org.apache.tuscany.core.model.physical.instancefactory.InjectionSiteMapping;
+import org.apache.tuscany.core.model.physical.instancefactory.InjectionSource;
+import org.apache.tuscany.core.model.physical.instancefactory.MemberSite;
+import org.apache.tuscany.core.model.physical.instancefactory.ReflectiveIFProviderDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalComponentDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireSourceDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireTargetDefinition;
+import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.ScopeRegistry;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.physical.InstanceFactoryProviderDefinition;
+import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class PhysicalBuilderTestCase extends TestCase {
+    private URI groupId;
+    private URI sourceId;
+    private URI targetId;
+    private ClassLoaderRegistry classLoaderRegistry;
+    private JavaPhysicalComponentBuilder builder;
+    private ScopeContainer<URI> scopeContainer;
+    private ScopeRegistry scopeRegistry;
+    private InstanceFactoryProviderDefinition<TargetImpl> targetProviderDefinition;
+
+    public void testWireTwoComponents() throws Exception {
+        JavaPhysicalComponentDefinition<SourceImpl> source = createSourceComponentDefinition();
+        JavaPhysicalComponentDefinition<TargetImpl> target = createTargetComponentDefinition();
+
+        JavaPhysicalWireSourceDefinition wireSource = new JavaPhysicalWireSourceDefinition();
+        wireSource.setUri(sourceId.resolve("#target"));
+        wireSource.setOptimizable(true);
+/*
+        JavaPhysicalWireTargetDefinition wireTarget = new JavaPhysicalWireTargetDefinition();
+        builder.attach(targetComponent, null, wireTarget);
+*/
+        JavaComponent<?> sourceComponent = builder.build(source);
+        JavaComponent<?> targetComponent = builder.build(target);
+        builder.attach(sourceComponent, targetComponent, null, wireSource);
+
+        sourceComponent.start();
+        targetComponent.start();
+
+        WorkContext workContext = new SimpleWorkContext();
+        workContext.setIdentifier(Scope.COMPOSITE, groupId);
+        PojoWorkContextTunnel.setThreadWorkContext(workContext);
+        try {
+            InstanceWrapper<?> wrapper = scopeContainer.getWrapper(sourceComponent, groupId);
+            SourceImpl s = (SourceImpl) wrapper.getInstance();
+            assertSame(s.target.getClass(), TargetImpl.class);
+        } finally {
+            PojoWorkContextTunnel.setThreadWorkContext(null);
+        }
+    }
+
+    private JavaPhysicalComponentDefinition<SourceImpl> createSourceComponentDefinition() {
+        ReflectiveIFProviderDefinition sourceProviderDefinition = new ReflectiveIFProviderDefinition();
+        sourceProviderDefinition.setImplementationClass(SourceImpl.class.getName());
+        InjectionSiteMapping mapping = new InjectionSiteMapping();
+        mapping.setSource(new InjectionSource(InjectionSource.ValueSourceType.REFERENCE, "target"));
+        mapping.setSite(new MemberSite(ElementType.FIELD, "target"));
+        sourceProviderDefinition.addInjectionSite(mapping);
+
+        JavaPhysicalComponentDefinition<SourceImpl> source = new JavaPhysicalComponentDefinition<SourceImpl>();
+        source.setComponentId(sourceId);
+        source.setGroupId(groupId);
+        source.setClassLoaderId(groupId);
+        source.setScope(Scope.COMPOSITE);
+        source.setInstanceFactoryProviderDefinition(sourceProviderDefinition);
+        return source;
+    }
+
+    private JavaPhysicalComponentDefinition<TargetImpl> createTargetComponentDefinition() {
+        ReflectiveIFProviderDefinition targetProviderDefinition = new ReflectiveIFProviderDefinition();
+        targetProviderDefinition.setImplementationClass(TargetImpl.class.getName());
+
+        JavaPhysicalComponentDefinition<TargetImpl> target = new JavaPhysicalComponentDefinition<TargetImpl>();
+        target.setComponentId(targetId);
+        target.setGroupId(groupId);
+        target.setClassLoaderId(groupId);
+        target.setScope(Scope.COMPOSITE);
+        target.setInstanceFactoryProviderDefinition(targetProviderDefinition);
+        return target;
+    }
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        groupId = URI.create("sca://./composite");
+        sourceId = groupId.resolve("composite/source");
+        targetId = groupId.resolve("composite/target");
+        classLoaderRegistry = EasyMock.createMock(ClassLoaderRegistry.class);
+        ClassLoader classLoader = getClass().getClassLoader();
+        EasyMock.expect(classLoaderRegistry.getClassLoader(groupId)).andStubReturn(classLoader);
+        EasyMock.replay(classLoaderRegistry);
+
+        scopeContainer = new CompositeScopeContainer<URI>(null);
+        scopeContainer.start();
+        scopeContainer.createGroup(groupId);
+        scopeContainer.startContext(groupId, groupId);
+
+        scopeRegistry = EasyMock.createMock(ScopeRegistry.class);
+        EasyMock.expect(scopeRegistry.getScopeContainer(Scope.COMPOSITE)).andStubReturn(scopeContainer);
+        EasyMock.replay(scopeRegistry);
+
+        IFProviderBuilderRegistry providerBuilders = new DefaultIFProviderBuilderRegistry();
+        providerBuilders.register(ReflectiveIFProviderDefinition.class, new ReflectiveIFProviderBuilder());
+
+        builder = new JavaPhysicalComponentBuilder(null, scopeRegistry, providerBuilders, classLoaderRegistry);
+    }
+
+    public static class SourceImpl {
+        public TargetImpl target;
+    }
+
+    public static class TargetImpl {
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java?view=diff&rev=520022&r1=520021&r2=520022
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java Mon Mar 19 10:39:48 2007
@@ -61,6 +61,34 @@
     private InstanceFactoryProviderDefinition<TargetImpl> targetProviderDefinition;
 
     public void testWireTwoComponents() throws Exception {
+        SystemPhysicalComponentDefinition<SourceImpl> source = createSourceComponentDefinition();
+        SystemPhysicalComponentDefinition<TargetImpl> target = createTargetComponentDefinition();
+
+        SystemPhysicalWireSourceDefinition wireSource = new SystemPhysicalWireSourceDefinition();
+        wireSource.setUri(sourceId.resolve("#target"));
+        SystemPhysicalWireTargetDefinition wireTarget = new SystemPhysicalWireTargetDefinition();
+
+        SystemComponent<?> sourceComponent = builder.build(source);
+        SystemComponent<?> targetComponent = builder.build(target);
+        builder.attach(sourceComponent, targetComponent, null, wireSource);
+        builder.attach(targetComponent, null, wireTarget);
+
+        sourceComponent.start();
+        targetComponent.start();
+
+        WorkContext workContext = new SimpleWorkContext();
+        workContext.setIdentifier(Scope.COMPOSITE, groupId);
+        PojoWorkContextTunnel.setThreadWorkContext(workContext);
+        try {
+            InstanceWrapper<?> wrapper = scopeContainer.getWrapper(sourceComponent, groupId);
+            SourceImpl s = (SourceImpl) wrapper.getInstance();
+            assertSame(s.target.getClass(), TargetImpl.class);
+        } finally {
+            PojoWorkContextTunnel.setThreadWorkContext(null);
+        }
+    }
+
+    private SystemPhysicalComponentDefinition<SourceImpl> createSourceComponentDefinition() {
         ReflectiveIFProviderDefinition sourceProviderDefinition = new ReflectiveIFProviderDefinition();
         sourceProviderDefinition.setImplementationClass(SourceImpl.class.getName());
         InjectionSiteMapping mapping = new InjectionSiteMapping();
@@ -74,8 +102,10 @@
         source.setClassLoaderId(groupId);
         source.setScope(Scope.COMPOSITE);
         source.setInstanceFactoryProviderDefinition(sourceProviderDefinition);
-        SystemComponent<?> sourceComponent = builder.build(source);
+        return source;
+    }
 
+    private SystemPhysicalComponentDefinition<TargetImpl> createTargetComponentDefinition() {
         ReflectiveIFProviderDefinition targetProviderDefinition = new ReflectiveIFProviderDefinition();
         targetProviderDefinition.setImplementationClass(TargetImpl.class.getName());
 
@@ -85,27 +115,7 @@
         target.setClassLoaderId(groupId);
         target.setScope(Scope.COMPOSITE);
         target.setInstanceFactoryProviderDefinition(targetProviderDefinition);
-        SystemComponent<?> targetComponent = builder.build(target);
-
-        SystemPhysicalWireSourceDefinition wireSource = new SystemPhysicalWireSourceDefinition();
-        wireSource.setUri(sourceId.resolve("#target"));
-        SystemPhysicalWireTargetDefinition wireTarget = new SystemPhysicalWireTargetDefinition();
-        builder.attach(sourceComponent, targetComponent, null, wireSource);
-        builder.attach(targetComponent, null, wireTarget);
-
-        sourceComponent.start();
-        targetComponent.start();
-
-        WorkContext workContext = new SimpleWorkContext();
-        workContext.setIdentifier(Scope.COMPOSITE, groupId);
-        PojoWorkContextTunnel.setThreadWorkContext(workContext);
-        try {
-            InstanceWrapper<?> wrapper = scopeContainer.getWrapper(sourceComponent, groupId);
-            SourceImpl s = (SourceImpl) wrapper.getInstance();
-            assertSame(s.target.getClass(), TargetImpl.class);
-        } finally {
-            PojoWorkContextTunnel.setThreadWorkContext(null);
-        }
+        return target;
     }
 
     protected void setUp() throws Exception {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org