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/12/23 13:14:11 UTC

svn commit: r489888 [6/6] - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/ kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ kerne...

Modified: incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/propertyTest.componentType
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/propertyTest.componentType?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/propertyTest.componentType (original)
+++ incubator/tuscany/java/sca/services/containers/container.ruby/src/test/resources/org/apache/tuscany/container/ruby/function/propertyTest.componentType Sat Dec 23 04:14:05 2006
@@ -19,7 +19,7 @@
 -->
 
 <componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-    <service name="HelloWorldService">
+    <service name="helloworld.HelloWorldService">
         <interface.java interface="helloworld.HelloWorldService"/>
     </service>
 	<property name="GREETING" type="xsd:string">Bow Wow</property>

Modified: incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.script/src/main/java/org/apache/tuscany/container/script/ScriptComponent.java Sat Dec 23 04:14:05 2006
@@ -22,7 +22,6 @@
 import java.util.List;
 
 import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
 import org.apache.tuscany.spi.component.TargetResolutionException;
 import org.apache.tuscany.spi.extension.AtomicComponentExtension;
@@ -71,24 +70,11 @@
         return services;
     }
 
-    public Object getServiceInstance() throws TargetResolutionException {
-        return getServiceInstance(null);
-    }
-
     protected void onReferenceWire(OutboundWire wire) {
         factory.addContextObjectFactory(wire.getReferenceName(), new WireObjectFactory(wire, wireService));
     }
 
-    @SuppressWarnings("unchecked")
-    public Object getServiceInstance(String service) throws TargetResolutionException {
-        InboundWire wire = getInboundWire(service);
-        if (wire == null) {
-            throw new TargetNotFoundException("Service not found", service);
-        }
-        return wireService.createProxy(wire);
-    }
-
-    public Object getTargetInstance() throws TargetException {
+    public Object getTargetInstance() throws TargetResolutionException {
         return scopeContainer.getInstance(this);
     }
 

Modified: incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentTestCase.java Sat Dec 23 04:14:05 2006
@@ -28,14 +28,10 @@
 import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.RuntimeWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.WireService;
 
 import junit.framework.TestCase;
 import org.easymock.EasyMock;
-import org.easymock.IAnswer;
 
 public class ScriptComponentTestCase extends TestCase {
 
@@ -51,41 +47,6 @@
         operation.setServiceContract(new Contract<Type>(List.class));
         TargetInvoker invoker = component.createTargetInvoker("hashCode", operation, null);
         assertNotNull(invoker);
-    }
-
-    @SuppressWarnings("unchecked")
-    public void testGetServiceInstance() throws Exception {
-        WireService wireService = EasyMock.createMock(WireService.class);
-        EasyMock.expect(wireService.createProxy(EasyMock.isA(RuntimeWire.class))).andStubAnswer(new IAnswer() {
-            public Object answer() throws Throwable {
-                return "foo";
-            }
-        });
-        EasyMock.replay(wireService);
-        ComponentConfiguration config = new ComponentConfiguration();
-        config.setName("foo");
-        config.setScopeContainer(container);
-        config.setWireService(wireService);
-        ScriptComponent pc = new ScriptComponent(config);
-        InboundWire wire = EasyMock.createMock(InboundWire.class);
-        EasyMock.expect(wire.getServiceName()).andReturn("foo");
-        EasyMock.replay(wire);
-        pc.addInboundWire(wire);
-        assertEquals("foo", pc.getServiceInstance());
-        EasyMock.verify(wireService);
-    }
-
-    public void testGetServiceInstanceFail() {
-        ComponentConfiguration config = new ComponentConfiguration();
-        config.setName("foo");
-        config.setScopeContainer(container);
-        ScriptComponent pc = new ScriptComponent(config);
-        try {
-            pc.getServiceInstance();
-            fail();
-        } catch (TargetException e) {
-            // expected
-        }
     }
 
     public void testGetServiceInterfaces() {

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=489888&r1=489887&r2=489888
==============================================================================
--- 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 Sat Dec 23 04:14:05 2006
@@ -20,6 +20,7 @@
 
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.builder.BuilderInstantiationException;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentRegistrationException;
 import org.apache.tuscany.spi.component.CompositeComponent;
@@ -37,7 +38,6 @@
 
 import org.apache.tuscany.container.spring.model.SpringComponentType;
 import org.apache.tuscany.container.spring.model.SpringImplementation;
-import org.apache.tuscany.spi.builder.BuilderInstantiationException;
 import org.springframework.core.io.Resource;
 
 /**
@@ -54,7 +54,8 @@
         String name = componentDefinition.getName();
         SpringImplementation implementation = componentDefinition.getImplementation();
         Resource resource = implementation.getApplicationResource();
-        SpringCompositeComponent component = new SpringCompositeComponent(name, resource, parent, connector, null);
+        SpringCompositeComponent component =
+            new SpringCompositeComponent(name, resource, parent, wireService, connector, null);
         SpringComponentType<Property<?>> componentType = implementation.getComponentType();
 
         // We need to set the target invoker as opposed to having the connector do it since the

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=489888&r1=489887&r2=489888
==============================================================================
--- 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 Sat Dec 23 04:14:05 2006
@@ -31,16 +31,15 @@
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.extension.CompositeComponentExtension;
 import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.WireService;
 
 import org.apache.tuscany.container.spring.context.SCAApplicationContext;
-import org.springframework.beans.BeanInstantiationException;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
@@ -63,6 +62,7 @@
     private static final String[] EMPTY_ARRAY = new String[0];
     private AbstractApplicationContext springContext;
     private Resource resource;
+    private WireService wireService;
 
     /**
      * Creates a new composite
@@ -70,23 +70,26 @@
      * @param name           the name of the SCA composite
      * @param resource       a resource pointing to the application context
      * @param parent         the SCA composite parent
+     * @param wireService    the wire service to create proxies
      * @param connector      the connector to use for wiring children
      * @param propertyValues the values of this composite's Properties
      */
     public SpringCompositeComponent(String name,
                                     Resource resource,
                                     CompositeComponent parent,
+                                    WireService wireService,
                                     Connector connector,
                                     Map<String, Document> propertyValues) {
         super(name, parent, connector, propertyValues);
         this.resource = resource;
+        this.wireService = wireService;
     }
 
     /**
      * Creates a new composite
      *
      * @param name           the name of the SCA composite
-     * @param context
+     * @param context        the Spring application context
      * @param parent         the SCA composite parent
      * @param connector      the connector to use for wiring children
      * @param propertyValues the values of this composite's Properties
@@ -142,7 +145,7 @@
         springContext.stop();
     }
 
-    public <T> T locateService(Class<T> serviceInterface, String name) {
+    public <T> T getBean(Class<T> serviceInterface, String name) {
         return serviceInterface.cast(springContext.getBean(name));
     }
 
@@ -165,20 +168,23 @@
             }
             Class<?> type;
             if (object instanceof Reference) {
-                type = ((Reference) object).getInterface();
+                Reference reference = (Reference) object;
+                type = reference.getInterface();
+                if (requiredType != null && requiredType.isAssignableFrom(type)) {
+                    // need null check since Spring may pass in a null
+                    throw new BeanNotOfRequiredTypeException(name, requiredType, type);
+                }
+                return wireService.createProxy(type, reference.getInboundWire());
             } else if (object instanceof Service) {
-                type = ((Service) object).getInterface();
+                Service service = (Service) object;
+                type = service.getInterface();
+                if (requiredType != null && requiredType.isAssignableFrom(type)) {
+                    // need null check since Spring may pass in a null
+                    throw new BeanNotOfRequiredTypeException(name, requiredType, type);
+                }
+                return wireService.createProxy(type, service.getInboundWire());
             } else {
                 throw new AssertionError("Illegal object type [" + name + "]");
-            }
-            if (requiredType != null && requiredType.isAssignableFrom(type)) {
-                // need null check since Spring may pass in a null
-                throw new BeanNotOfRequiredTypeException(name, requiredType, type);
-            }
-            try {
-                return object.getServiceInstance();
-            } catch (TargetException e) {
-                throw new BeanInstantiationException(requiredType, "Error returning service or reference", e);
             }
         }
 

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringInvoker.java Sat Dec 23 04:14:05 2006
@@ -52,7 +52,7 @@
     public Object invokeTarget(final Object object, final short sequence) throws InvocationTargetException {
         if (bean == null) {
             try {
-                bean = component.locateService(Object.class, beanName);
+                bean = component.getBean(Object.class, beanName);
                 if (bean == null) {
                     throw new InvocationTargetException(new TargetNotFoundException(beanName));
                 }

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java Sat Dec 23 04:14:05 2006
@@ -21,10 +21,12 @@
 import java.net.URL;
 
 import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.container.spring.mock.TestBean;
-import org.apache.tuscany.container.spring.mock.TestBeanImpl;
+import org.easymock.EasyMock;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
@@ -41,18 +43,20 @@
     public void testInvocation() throws Exception {
         URL url = getClass().getClassLoader().getResource("META-INF/sca/testReferenceContext.xml");
         Resource resource = new UrlResource(url);
-        SpringCompositeComponent parent = new SpringCompositeComponent("spring", resource, null, null, null);
-        TestBean referenceTarget = new TestBeanImpl();
+        SpringCompositeComponent parent = new SpringCompositeComponent("spring", resource, null, null, null, null);
+        InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
+        EasyMock.expect(inboundWire.getServiceContract()).andReturn(new ServiceContract(TestBean.class){});
+        EasyMock.replay(inboundWire);
         Reference reference = createMock(Reference.class);
         expect(reference.getName()).andReturn("bar").anyTimes();
         expect(reference.isSystem()).andReturn(false).atLeastOnce();
         expect(reference.getInterface()).andStubReturn(TestBean.class);
-        expect(reference.getServiceInstance()).andStubReturn(referenceTarget);
+        expect(reference.getInboundWire()).andStubReturn(inboundWire);
         reference.start();
         replay(reference);
         parent.register(reference);
         parent.start();
-        parent.locateService(TestBean.class, "testBean");
+        parent.getBean(TestBean.class, "testBean");
     }
 
 }

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=489888&r1=489887&r2=489888
==============================================================================
--- 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 Sat Dec 23 04:14:05 2006
@@ -25,6 +25,7 @@
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WireService;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.container.spring.mock.TestBean;
@@ -41,6 +42,7 @@
  * @version $$Rev$$ $$Date$$
  */
 public class ServiceInvocationTestCase extends TestCase {
+    private WireService wireService;
 
     public void testInvocation() throws Exception {
         AbstractApplicationContext springContext = createSpringContext();
@@ -54,12 +56,15 @@
         service.setInboundWire(inboundWire);
         service.setOutboundWire(outboundWire);
         Connector connector = ArtifactFactory.createConnector();
+        outboundWire.setContainer(service);
+        inboundWire.setContainer(service);
         connector.connect(inboundWire, outboundWire, true);
         for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
             chain.setTargetInvoker(composite.createTargetInvoker("foo", chain.getOperation(), null));
         }
         composite.register(service);
-        TestBean serviceInstance = (TestBean) composite.getService("fooService").getServiceInstance();
+        InboundWire wire = composite.getService("fooService").getInboundWire();
+        TestBean serviceInstance = wireService.createProxy(TestBean.class, wire);
         assertEquals("bar", serviceInstance.echo("bar"));
     }
 
@@ -72,4 +77,9 @@
         return beanFactory;
     }
 
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        wireService = ArtifactFactory.createWireService();
+    }
 }

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java Sat Dec 23 04:14:05 2006
@@ -64,13 +64,15 @@
     public void testImplicitServiceWiring() throws Exception {
         // Create a service instance that the mock builder registry will return
         WireService wireService = ArtifactFactory.createWireService();
-        ServiceExtension serviceContext =
+        ServiceExtension service =
             new ServiceExtension("fooService", TestBean.class, null, wireService);
         InboundWire inboundWire = ArtifactFactory.createInboundWire("fooService", TestBean.class);
         OutboundWire outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
         ArtifactFactory.terminateWire(outboundWire);
-        serviceContext.setInboundWire(inboundWire);
-        serviceContext.setOutboundWire(outboundWire);
+        service.setInboundWire(inboundWire);
+        service.setOutboundWire(outboundWire);
+        inboundWire.setContainer(service);
+        outboundWire.setContainer(service);
         Connector connector = ArtifactFactory.createConnector();
         connector.connect(inboundWire, outboundWire, true);
 
@@ -78,7 +80,7 @@
         BuilderRegistry registry = createMock(BuilderRegistry.class);
         expect(registry.build(isA(CompositeComponent.class),
             isA(BoundServiceDefinition.class),
-            isA(DeploymentContext.class))).andStubReturn(serviceContext);
+            isA(DeploymentContext.class))).andStubReturn(service);
         replay(registry);
 
         // Test the SpringCompositeBuilder
@@ -89,8 +91,8 @@
         DeploymentContext context = createNiceMock(DeploymentContext.class);
         CompositeComponent component = (CompositeComponent) builder.build(parent, definition, context);
         component.start();
-        Service service = component.getService("fooService");
-        TestBean bean = (TestBean) service.getServiceInstance();
+        Service fooService = component.getService("fooService");
+        TestBean bean = wireService.createProxy(TestBean.class, fooService.getInboundWire());
         assertEquals("call foo", bean.echo("call foo"));
         verify(registry);
     }

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringInvocationTestCase.java Sat Dec 23 04:14:05 2006
@@ -40,7 +40,7 @@
         EasyMock.expectLastCall();
         EasyMock.replay(bean);
         SpringCompositeComponent context = EasyMock.createMock(SpringCompositeComponent.class);
-        EasyMock.expect(context.locateService(Object.class, "foo")).andReturn(bean);
+        EasyMock.expect(context.getBean(Object.class, "foo")).andReturn(bean);
         EasyMock.replay(context);
         SpringInvoker invoker = new SpringInvoker("foo", TestBean.class.getMethod("test", String.class), context);
         Message msg = new MessageImpl();

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -4,10 +4,12 @@
 import org.osoa.sca.CurrentCompositeContext;
 
 import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.wire.WireService;
 
 import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
 import org.apache.tuscany.container.spring.mock.TestBean;
 import org.apache.tuscany.test.SCATestCase;
+import org.apache.tuscany.test.ArtifactFactory;
 
 /**
  * Bootstraps a simple scenario where a service can invoke a Spring bean. This test case is intended to be temporary and
@@ -19,16 +21,18 @@
  */
 public class BootstrapTestCase extends SCATestCase {
     private CompositeContext context;
+    private WireService wireService;
 
     public void testDemoBoot() throws Exception {
         SpringCompositeComponent comp = (SpringCompositeComponent) component.getChild("Spring");
         Service service = (Service) comp.getChild("fooService");
-        TestBean bean = (TestBean) service.getServiceInstance();
+        TestBean bean = wireService.createProxy(TestBean.class, service.getInboundWire());
         bean.echo("foo");
         bean.getBean().echo("foo");
     }
 
     protected void setUp() throws Exception {
+        wireService = ArtifactFactory.createWireService();
         addExtension("spring.extension", getClass().getClassLoader().getResource("META-INF/sca/spring.system.scdl"));
         setApplicationSCDL(getClass().getClassLoader().getResource("META-INF/sca/default.scdl"));
         super.setUp();

Modified: incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/main/java/org/apache/tuscany/service/persistence/common/PersistenceUnitProcessor.java Sat Dec 23 04:14:05 2006
@@ -25,8 +25,8 @@
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.component.ComponentRegistrationException;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.implementation.java.ImplementationProcessorExtension;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
@@ -59,7 +59,7 @@
         }
         String unitName = annotation.unitName();
 
-        SystemAtomicComponent component = (SystemAtomicComponent) parent.getSystemChild(unitName);
+        AtomicComponent component = (AtomicComponent) parent.getSystemChild(unitName);
         EntityManagerFactory emf;
         if (component == null) {
             emf = builder.newEntityManagerFactory(unitName, context.getClassLoader());

Modified: incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/common/src/test/java/org/apache/tuscany/service/persistence/common/PersistenceUnitTestCase.java Sat Dec 23 04:14:05 2006
@@ -1,10 +1,10 @@
 package org.apache.tuscany.service.persistence.common;
 
 import static org.apache.tuscany.spi.bootstrap.ComponentNames.TUSCANY_SYSTEM;
-
-import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
 import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
+
+import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
 import org.apache.tuscany.test.SCATestCase;
 
 public class PersistenceUnitTestCase extends SCATestCase {
@@ -17,16 +17,16 @@
         RuntimeComponent runtime = (RuntimeComponent) component.getParent().getParent();
         CompositeComponent systemComposite = runtime.getSystemComponent();
         CompositeComponent topLevelComposite = (CompositeComponent) systemComposite.getSystemChild(TUSCANY_SYSTEM);
-        
-        JavaAtomicComponent cmp = (JavaAtomicComponent)component.getChild("TestService1");
-        TestService1 testService1 = (TestService1) cmp.getServiceInstance();
+
+        JavaAtomicComponent cmp = (JavaAtomicComponent) component.getChild("TestService1");
+        TestService1 testService1 = (TestService1) cmp.getTargetInstance();
         testService1.testMethod();
     }
 
     protected void tearDown() throws Exception {
         super.tearDown();
     }
-    
+
     public void testGetComponent() {
     }
 

Modified: incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/DHCPBootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -22,6 +22,8 @@
 import java.net.URL;
 import javax.sql.DataSource;
 
+import org.apache.tuscany.spi.component.AtomicComponent;
+
 import org.apache.tuscany.test.SCATestCase;
 
 /**
@@ -32,7 +34,7 @@
 public class DHCPBootstrapTestCase extends SCATestCase {
 
     public void testBasicConnection() throws Exception {
-        DataSource ds = (DataSource) component.getSystemChild("TestDS").getServiceInstance();
+        DataSource ds = (DataSource) ((AtomicComponent)component.getSystemChild("TestDS")).getTargetInstance();
         assertNotNull(ds);
         Connection conn = ds.getConnection();
         conn.createStatement().execute("CREATE TABLE foo (bar char(20));");

Modified: incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/integration/ProviderBootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -21,6 +21,8 @@
 import java.net.URL;
 import javax.sql.DataSource;
 
+import org.apache.tuscany.spi.component.AtomicComponent;
+
 import org.apache.tuscany.persistence.datasource.integration.mock.Provider;
 import org.apache.tuscany.test.SCATestCase;
 
@@ -33,7 +35,7 @@
 public class ProviderBootstrapTestCase extends SCATestCase {
 
     public void testBoot() throws Exception {
-        DataSource ds = (DataSource) component.getSystemChild("TestDS").getServiceInstance();
+        DataSource ds = (DataSource) ((AtomicComponent)component.getSystemChild("TestDS")).getTargetInstance();
         assertNotNull(ds);
         assertEquals("value", ((Provider) ds).getTest());
     }

Added: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java?view=auto&rev=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java (added)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java Sat Dec 23 04:14:05 2006
@@ -0,0 +1,31 @@
+/*
+ * 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.service.openjpa;
+
+import org.apache.tuscany.spi.implementation.java.ProcessingException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EntityManagerFactoryNotConfiguredException extends ProcessingException {
+
+    public EntityManagerFactoryNotConfiguredException() {
+        super("Entity manager factory not configured");
+    }
+}

Propchange: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerFactoryNotConfiguredException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java (original)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/main/java/org/apache/tuscany/service/openjpa/EntityManagerProcessor.java Sat Dec 23 04:14:05 2006
@@ -32,6 +32,7 @@
 import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
 import org.apache.tuscany.spi.implementation.java.ProcessingException;
+import org.apache.tuscany.spi.wire.InboundWire;
 
 
 /**
@@ -70,7 +71,13 @@
                                     DeploymentContext context) throws ProcessingException {
         EntityManagerFactory emf;
         try {
-            emf = parent.resolveSystemInstance(EntityManagerFactory.class);
+            InboundWire wire = parent.resolveSystemAutowire(EntityManagerFactory.class);
+            if (wire == null) {
+                throw new EntityManagerFactoryNotConfiguredException();
+            }
+            Object o = wire.getTargetService();
+            assert o instanceof EntityManagerFactory;
+            emf = (EntityManagerFactory) o;
         } catch (TargetException e) {
             throw new ProcessingException(e);
         }

Modified: incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/openjpa/src/test/java/org/apache/tuscany/service/openjpa/EntityManagerProcessorTestCase.java Sat Dec 23 04:14:05 2006
@@ -32,6 +32,7 @@
 import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
 import org.apache.tuscany.spi.implementation.java.JavaMappedService;
 import org.apache.tuscany.spi.implementation.java.PojoComponentType;
+import org.apache.tuscany.spi.wire.InboundWire;
 
 import junit.framework.TestCase;
 import org.easymock.EasyMock;
@@ -92,12 +93,18 @@
         super.setUp();
         EntityManagerFactory emf = EasyMock.createMock(EntityManagerFactory.class);
         EasyMock.replay(emf);
+
+        InboundWire wire = EasyMock.createMock(InboundWire.class);
+        EasyMock.expect(wire.getTargetService()).andReturn(emf);
+        EasyMock.replay(wire);
+
         parent = EasyMock.createMock(CompositeComponent.class);
-        EasyMock.expect(parent.resolveSystemInstance(EntityManagerFactory.class)).andReturn(emf).atLeastOnce();
+        EasyMock.expect(parent.resolveSystemAutowire(EntityManagerFactory.class)).andReturn(wire).atLeastOnce();
         EasyMock.replay(parent);
         ImplementationProcessorService service = EasyMock.createMock(ImplementationProcessorService.class);
         service.addName(EasyMock.isA(List.class), EasyMock.eq(0), EasyMock.isA(String.class));
         EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
+            @SuppressWarnings({"unchecked"})
             public Object answer() throws Throwable {
                 ((List<Object>) EasyMock.getCurrentArguments()[0]).add(EasyMock.getCurrentArguments()[2]);
                 return null;

Modified: incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.journal/src/test/java/org/apache/tuscany/persistence/store/journal/performance/MockSCAObject.java Sat Dec 23 04:14:05 2006
@@ -49,10 +49,6 @@
         return null;
     }
 
-    public Object getServiceInstance() throws TargetResolutionException {
-        return null;
-    }
-
     public void prepare() {
 
     }

Modified: incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/test/java/org/apache/tuscany/transaction/geronimo/jta/integration/BootstrapTestCase.java Sat Dec 23 04:14:05 2006
@@ -35,12 +35,12 @@
 
     public void testTransactionManagerLocation() throws Exception {
         AtomicComponent tmComponent = (AtomicComponent) jtaComposite.getSystemChild("TransactionManager");
-        Object tm = tmComponent.getServiceInstance();
+        Object tm = tmComponent.getTargetInstance();
         assertTrue(tm instanceof TransactionManager);
     }
 
     public void testAutowire() throws Exception {
-        assertNotNull(jtaComposite.resolveSystemInstance(TransactionManager.class));
+        assertNotNull(jtaComposite.resolveSystemAutowire(TransactionManager.class));
     }
 
     protected void setUp() throws Exception {

Modified: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java?view=diff&rev=489888&r1=489887&r2=489888
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java Sat Dec 23 04:14:05 2006
@@ -24,14 +24,18 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.tuscany.spi.bootstrap.ComponentNames;
 import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentException;
 import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.deployer.Deployer;
 import org.apache.tuscany.spi.deployer.DeploymentMonitor;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.wire.WireService;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.api.TuscanyException;
@@ -40,6 +44,7 @@
 import org.apache.tuscany.core.launcher.LauncherImpl;
 import org.apache.tuscany.core.monitor.JavaLoggingMonitorFactory;
 import org.apache.tuscany.host.MonitorFactory;
+import org.apache.tuscany.host.runtime.InitializationException;
 
 /**
  * Base class for JUnit tests that want to run in an SCA client environment.
@@ -69,12 +74,20 @@
             for (String extensionName : extensions.keySet()) {
                 deployExtension(composite, extensionName, extensions.get(extensionName));
             }
+
+            SCAObject wireServiceComponent = composite.getSystemChild(ComponentNames.TUSCANY_WIRE_SERVICE);
+            if (!(wireServiceComponent instanceof AtomicComponent)) {
+                throw new InitializationException("WireService must be an atomic component");
+            }
+
+            WireService wireService = (WireService) ((AtomicComponent) wireServiceComponent).getTargetInstance();
+
             if (applicationSCDL == null) {
                 throw new RuntimeException("application SCDL not found: " + applicationSCDL);
             }
             component = launcher.bootApplication("application", applicationSCDL);
             component.start();
-            context = new CompositeContextImpl(component);
+            context = new CompositeContextImpl(component, wireService);
             context.start();
         } catch (TuscanyException e) {
             DeploymentMonitor monitor = monitorFactory.getMonitor(DeploymentMonitor.class);
@@ -122,7 +135,7 @@
     }
 
     protected void deployExtension(CompositeComponent composite, String extensionName, URL scdlURL)
-        throws LoaderException, BuilderException, ComponentException {
+        throws LoaderException, BuilderException, ComponentException, InitializationException {
         SystemCompositeImplementation implementation = new SystemCompositeImplementation();
         implementation.setScdlLocation(scdlURL);
         implementation.setClassLoader(new URLClassLoader(new URL[]{scdlURL}, getClass().getClassLoader()));
@@ -130,7 +143,12 @@
         ComponentDefinition<SystemCompositeImplementation> definition =
             new ComponentDefinition<SystemCompositeImplementation>(extensionName, implementation);
 
-        Deployer deployer = (Deployer) composite.getSystemChild("deployer").getServiceInstance();
+
+        SCAObject child = composite.getSystemChild(ComponentNames.TUSCANY_DEPLOYER);
+        if (!(child instanceof AtomicComponent)) {
+            throw new InitializationException("Deployer must be an atomic component");
+        }
+        Deployer deployer = (Deployer) ((AtomicComponent) child).getTargetInstance();
         Component component = deployer.deploy(composite, definition);
         component.start();
     }



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