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