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/08/16 04:33:42 UTC

svn commit: r431772 - in /incubator/tuscany/java/sca: commands/launcher/src/main/resources/META-INF/tuscany/ containers/container.spring/src/main/java/org/apache/tuscany/container/spring/config/ containers/container.spring/src/main/java/org/apache/tusc...

Author: jmarino
Date: Tue Aug 15 19:33:41 2006
New Revision: 431772

URL: http://svn.apache.org/viewvc?rev=431772&view=rev
Log:
get end-to-end Spring scenario working: model loading refactors, test binding for services, add test application context; add InterfaceJavaIntrospector to launcher; refactor SPI and Connector to add isSelfWiring for CompositeComponent impls such as Spring that perform their own wiring

Added:
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java   (with props)
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java   (contents, props changed)
      - copied, changed from r431618, incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/VMBinding.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java   (with props)
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java   (with props)
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java   (with props)
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml   (with props)
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/test.binding.system.scdl
Removed:
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/VMBinding.java
Modified:
    incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/loader.scdl
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/config/SCARootDefinitionParser.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringServiceContract.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/resources/org/springframework/sca/xml/spring-sca.xsd
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringConfigSchemaTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml
    incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaIntrospector.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
    incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java

Modified: incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/loader.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/loader.scdl?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/loader.scdl (original)
+++ incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/loader.scdl Tue Aug 15 19:33:41 2006
@@ -39,6 +39,9 @@
     <component name="elementLoader.interface.java">
         <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaLoader"/>
     </component>
+    <component name="interfaceJava.introspector">
+        <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaIntrospectorImpl"/>
+    </component>
     <component name="elementLoader.property">
         <system:implementation.system class="org.apache.tuscany.core.loader.PropertyLoader"/>
     </component>

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/config/SCARootDefinitionParser.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/config/SCARootDefinitionParser.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/config/SCARootDefinitionParser.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/config/SCARootDefinitionParser.java Tue Aug 15 19:33:41 2006
@@ -24,8 +24,8 @@
 import org.springframework.beans.factory.xml.NamespaceHandlerResolver;
 
 /**
- * Overrides the default top-level Spring parser to use {@link SCANamespaceHandlerResolver}
- * for resolving namespace handlers
+ * Overrides the default top-level Spring parser to use {@link SCANamespaceHandlerResolver} for resolving namespace
+ * handlers
  *
  * @version $$Rev$$ $$Date$$
  */

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringComponentTypeLoader.java Tue Aug 15 19:33:41 2006
@@ -60,9 +60,14 @@
      * it is needed to derive component type information. Since the component type is loaded per SCDL entry (i.e.
      * composite use) one application context instance will be created per Spring composite instance.
      */
+    @SuppressWarnings("unchecked")
     public void load(CompositeComponent<?> parent,
                      SpringImplementation implementation,
                      DeploymentContext deploymentContext) throws LoaderException {
+        if (implementation.getComponentType() != null) {
+            // FIXME hack
+            return;
+        }
         Resource resource = implementation.getApplicationResource();
         DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
         XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
@@ -94,52 +99,6 @@
         }
         // if no service tags are specified, expose all beans
         componentType.setExposeAllBeans(componentType.getServiceTypes().isEmpty());
-
-//        // If there were no <sca:service> elements, expose all beans as SCA services
-//        // REVIEW: this needs a lot of refinement; we almost certainly don't want to expose
-//        // _all_ beans willy nilly.
-//        if (serviceBeanNames.length == 0) {
-//            String [] allBeanDefNames = ctx.getBeanDefinitionNames();
-//            for (String beanDefName : allBeanDefNames) {
-//                BeanDefinition beanDef = ctx.getBeanDefinition(beanDefName);
-//                String beanClassName = beanDef.getBeanClassName();
-//                String beanName = (String) beanDef.getAttribute("name");
-//                try {
-//                    Class beanClass = Class.forName(beanClassName, true, deploymentContext.getClassLoader());
-//                    Class [] beanInterfaces = beanClass.getInterfaces();
-//                    // hack, just using the 1st impl'ed interface for now
-//                    if (beanInterfaces.length > 0) {
-//                        ServiceDefinition service = createService(beanInterfaces[0]);
-//                        componentType.getServices().put(beanName, service);
-//                    }
-//                } catch (ClassNotFoundException e) {
-//                    e.printStackTrace();
-//                }
-//            }
-//        }
-
         implementation.setComponentType(componentType);
     }
-
-//    private ServiceDefinition createService(Class<?> interfaze) {
-//        ServiceDefinition service = new BoundServiceDefinition();
-//        service.setName(getBaseName(interfaze));
-//        service.setRemotable(interfaze.getAnnotation(Remotable.class) != null);
-//        ServiceContract contract = new SpringServiceContract();
-//        contract.setInterfaceClass(interfaze);
-//        contract.setInteractionScope(InteractionScope.NONCONVERSATIONAL);
-//        service.setServiceContract(contract);
-//        return service;
-//    }
-//
-//    private String getBaseName(Class<?> implClass) {
-//        String baseName = implClass.getName();
-//        int lastDot = baseName.lastIndexOf('.');
-//        if (lastDot != -1) {
-//            baseName = baseName.substring(lastDot + 1);
-//        }
-//        return baseName;
-//    }
-
-
 }

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java Tue Aug 15 19:33:41 2006
@@ -53,7 +53,7 @@
         String name = componentDefinition.getName();
         SpringImplementation implementation = componentDefinition.getImplementation();
         ConfigurableApplicationContext applicationContext = implementation.getComponentType().getApplicationContext();
-        SpringCompositeComponent component = new SpringCompositeComponent(name, applicationContext, parent, null);
+        SpringCompositeComponent<?> component = new SpringCompositeComponent(name, applicationContext, parent, null);
         CompositeComponentType<BoundServiceDefinition<? extends Binding>,
             BoundReferenceDefinition<? extends Binding>,
             ? extends Property> componentType = implementation.getComponentType();

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java Tue Aug 15 19:33:41 2006
@@ -50,7 +50,7 @@
  *
  * @version $$Rev$$ $$Date$$
  */
-public class SpringCompositeComponent extends CompositeComponentExtension {
+public class SpringCompositeComponent<T> extends CompositeComponentExtension<T> {
     private static final String[] EMPTY_ARRAY = new String[0];
     private ConfigurableApplicationContext springContext;
 
@@ -70,6 +70,8 @@
         SCAApplicationContext scaApplicationContext = new SCAApplicationContext();
         springContext.setParent(scaApplicationContext);
         this.springContext = springContext;
+        // Spring wires itself
+        this.selfWiring = true;
     }
 
     public TargetInvoker createTargetInvoker(String serviceName, Method method) {
@@ -95,7 +97,6 @@
         springContext.stop();
     }
 
-
     /**
      * An inner class is required to act as the Spring application context parent as opposed to implementing the
      * interface since the return types for {@link org.springframework.context.ApplicationContext#getParent()} and
@@ -111,6 +112,7 @@
             return context.getServiceInstance();
         }
 
+        @SuppressWarnings("unchecked")
         public Object getBean(String name, Class requiredType) throws BeansException {
             SCAObject context = (SCAObject) children.get(name);   // keep cast due to compiler error
             if (context == null) {

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java Tue Aug 15 19:33:41 2006
@@ -74,12 +74,10 @@
     private static final QName IMPLEMENTATION_SPRING = new QName("http://www.osoa.org/xmlns/sca/1.0",
         "implementation.spring");
 
-    private static final String APPLICATION_CONTEXT = "META-INF/application-context.xml";
+    private static final String APPLICATION_CONTEXT = "application-context.xml";
 
     private static final QName SERVICE_ELEMENT = new QName(XML_NAMESPACE_1_0, "service");
     private static final QName REFERENCE_ELEMENT = new QName(XML_NAMESPACE_1_0, "reference");
-    private static final QName COMPONENT = new QName(XML_NAMESPACE_1_0, "component");
-
 
     private final RuntimeInfo runtimeInfo;
 
@@ -93,6 +91,7 @@
         return IMPLEMENTATION_SPRING;
     }
 
+    @SuppressWarnings("unchecked")
     public SpringImplementation load(CompositeComponent parent,
                                      XMLStreamReader reader,
                                      DeploymentContext deploymentContext)
@@ -104,7 +103,8 @@
         }
 
         SpringImplementation implementation = new SpringImplementation();
-        implementation.setApplicationResource(getApplicationContextResource(locationAttr));
+        ClassLoader classLoader = deploymentContext.getClassLoader();
+        implementation.setApplicationResource(getApplicationContextResource(locationAttr, classLoader));
         registry.loadComponentType(parent, implementation, deploymentContext);
         SpringComponentType type = implementation.getComponentType();
         while (true) {
@@ -128,14 +128,14 @@
                     }
                     break;
                 case END_ELEMENT:
-                    if (COMPONENT.equals(reader.getName())) {
+                    if (IMPLEMENTATION_SPRING.equals(reader.getName())) {
                         return implementation;
                     }
             }
         }
     }
 
-    protected Resource getApplicationContextResource(String locationAttr) throws LoaderException {
+    protected Resource getApplicationContextResource(String locationAttr, ClassLoader cl) throws LoaderException {
         assert runtimeInfo != null;
         File manifestFile = null;
         File appXmlFile;
@@ -144,8 +144,12 @@
         if (!locationFile.isAbsolute()) {
             locationFile = new File(runtimeInfo.getApplicationRootDirectory(), locationAttr);
         }
-
         if (!locationFile.exists()) {
+            // FIXME hack
+            URL url = cl.getResource(locationAttr);
+            if (url != null) {
+                return new UrlResource(url);
+            }
             throw new MissingResourceException(locationFile.toString());
         }
 

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringServiceContract.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringServiceContract.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringServiceContract.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/model/SpringServiceContract.java Tue Aug 15 19:33:41 2006
@@ -5,7 +5,7 @@
 /**
  * @version $Rev$ $Date$
  */
-public class SpringServiceContract extends ServiceContract {
+public class SpringServiceContract<T> extends ServiceContract<T> {
     public SpringServiceContract() {
     }
 

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/resources/org/springframework/sca/xml/spring-sca.xsd
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/resources/org/springframework/sca/xml/spring-sca.xsd?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/resources/org/springframework/sca/xml/spring-sca.xsd (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/resources/org/springframework/sca/xml/spring-sca.xsd Tue Aug 15 19:33:41 2006
@@ -1,83 +1,83 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.springframework.org/schema/sca"  
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-  attributeFormDefault="unqualified" 
-  elementFormDefault="qualified" 
-  targetNamespace="http://www.springframework.org/schema/sca">
+<xsd:schema xmlns="http://www.springframework.org/schema/sca"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            attributeFormDefault="unqualified"
+            elementFormDefault="qualified"
+            targetNamespace="http://www.springframework.org/schema/sca">
 
-	<xsd:element name="composite">
-		<xsd:complexType>
-			<xsd:attribute name="component" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="sca-adapter-class" use="optional">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>			
-		</xsd:complexType>
-	</xsd:element>
-	
-	<xsd:element name="reference">
-		<xsd:complexType>
-			<xsd:attribute name="name" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="type" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="default" use="optional">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-		</xsd:complexType>		
-	</xsd:element>
+    <xsd:element name="composite">
+        <xsd:complexType>
+            <xsd:attribute name="component" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="sca-adapter-class" use="optional">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+        </xsd:complexType>
+    </xsd:element>
 
-	<xsd:element name="property">
-		<xsd:complexType>
-			<xsd:attribute name="id" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="name" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="type" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-		</xsd:complexType>		
-	</xsd:element>
+    <xsd:element name="reference">
+        <xsd:complexType>
+            <xsd:attribute name="name" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="type" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="default" use="optional">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+        </xsd:complexType>
+    </xsd:element>
 
-	<xsd:element name="service">
-		<xsd:complexType>
-			<xsd:attribute name="name" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="type" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-			<xsd:attribute name="target" use="required">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string"/>
-				</xsd:simpleType>
-			</xsd:attribute>
-		</xsd:complexType>		
-	</xsd:element>
+    <xsd:element name="property">
+        <xsd:complexType>
+            <xsd:attribute name="id" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="name" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="type" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="service">
+        <xsd:complexType>
+            <xsd:attribute name="name" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="type" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+            <xsd:attribute name="target" use="required">
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string"/>
+                </xsd:simpleType>
+            </xsd:attribute>
+        </xsd:complexType>
+    </xsd:element>
 
 </xsd:schema>

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringConfigSchemaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringConfigSchemaTestCase.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringConfigSchemaTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringConfigSchemaTestCase.java Tue Aug 15 19:33:41 2006
@@ -19,10 +19,10 @@
 package org.apache.tuscany.container.spring;
 
 import junit.framework.TestCase;
+import org.apache.tuscany.container.spring.config.SCAReference;
+import org.apache.tuscany.container.spring.mock.TestBean;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.apache.tuscany.container.spring.mock.TestBean;
-import org.apache.tuscany.container.spring.config.SCAReference;
 
 /**
  * Tests the SCA extensible schema elements for Spring's XML configuration files
@@ -36,7 +36,7 @@
 
     public void setUp() {
         applicationContext =
-                new ClassPathXmlApplicationContext("org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml");
+            new ClassPathXmlApplicationContext("org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml");
     }
 
     public void testSCAService() {

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java Tue Aug 15 19:33:41 2006
@@ -42,7 +42,7 @@
 
     public void testInvocation() throws Exception {
         ConfigurableApplicationContext ctx = createSpringContext();
-        SpringCompositeComponent parent = new SpringCompositeComponent("spring", ctx, null, null);
+        SpringCompositeComponent<?> parent = new SpringCompositeComponent("spring", ctx, null, null);
         parent.start();
         TestBean referenceTarget = new TestBeanImpl();
         Reference reference = createMock(Reference.class);

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java Tue Aug 15 19:33:41 2006
@@ -42,7 +42,7 @@
 public class ServiceInvocationTestCase extends TestCase {
 
     public void testInvocation() {
-        SpringCompositeComponent context = new SpringCompositeComponent("parent", createSpringContext(), null, null);
+        SpringCompositeComponent<?> context = new SpringCompositeComponent("parent", createSpringContext(), null, null);
         InboundWire<TestBean> inboundWire = ArtifactFactory.createInboundWire("fooService", TestBean.class);
         OutboundWire<TestBean> outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
         ArtifactFactory.terminateWire(outboundWire);

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilderTestCase.java Tue Aug 15 19:33:41 2006
@@ -36,7 +36,7 @@
 import junit.framework.TestCase;
 import static org.apache.tuscany.container.spring.SpringTestUtils.createContext;
 import org.apache.tuscany.container.spring.mock.TestBean;
-import org.apache.tuscany.container.spring.mock.VMBinding;
+import org.apache.tuscany.container.spring.mock.binding.TestBinding;
 import org.apache.tuscany.container.spring.model.SpringComponentType;
 import org.apache.tuscany.container.spring.model.SpringImplementation;
 import org.apache.tuscany.test.ArtifactFactory;
@@ -55,6 +55,7 @@
     /**
      * Verfies basic build of a spring context
      */
+    @SuppressWarnings("unchecked")
     public void testBuild() throws Exception {
         // Create an assembly model consisting of a component implemented by Spring
         SpringImplementation impl = new SpringImplementation(new SpringComponentType(createContext()));
@@ -79,8 +80,8 @@
      * Verifies that the builder calls back into the registry to load services and wires them to bean targets when no
      * <code>sca:service</code> tag is specified in the Spring application.xml
      */
+    @SuppressWarnings("unchecked")
     public void testImplicitServiceWiring() throws Exception {
-
         // Create an assembly model consisting of a component implemented by Spring
         SpringImplementation impl = new SpringImplementation(createComponentType());
         ComponentDefinition<SpringImplementation> componentDefinition =
@@ -118,11 +119,12 @@
         verify(registry);
     }
 
+    @SuppressWarnings("unchecked")
     private SpringComponentType createComponentType() {
         SpringComponentType componentType = new SpringComponentType(createContext());
-        BoundServiceDefinition<VMBinding> serviceDefinition = new BoundServiceDefinition<VMBinding>();
+        BoundServiceDefinition<TestBinding> serviceDefinition = new BoundServiceDefinition<TestBinding>();
         serviceDefinition.setName("fooService");
-        serviceDefinition.setBinding(new VMBinding());
+        serviceDefinition.setBinding(new TestBinding());
         try {
             serviceDefinition.setTarget(new URI("foo"));
         } catch (URISyntaxException e) {

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java?rev=431772&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java Tue Aug 15 19:33:41 2006
@@ -0,0 +1,35 @@
+package org.apache.tuscany.container.spring.integration;
+
+import org.osoa.sca.CompositeContext;
+import org.osoa.sca.CurrentCompositeContext;
+
+import org.apache.tuscany.spi.component.Service;
+
+import org.apache.tuscany.container.spring.impl.SpringCompositeComponent;
+import org.apache.tuscany.container.spring.mock.TestBean;
+import org.apache.tuscany.test.SCATestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class BootstrapTestCase extends SCATestCase {
+
+    private CompositeContext context;
+
+    public void testDemoBoot() {
+        SpringCompositeComponent comp = (SpringCompositeComponent) component.getChild("Spring");
+        Service service = (Service) comp.getChild("fooService");
+        TestBean bean = (TestBean) service.getServiceInstance();
+        bean.echo("foo");
+    }
+
+    protected void setUp() throws Exception {
+        addExtension("test.binding.extension",
+            getClass().getClassLoader().getResource("META-INF/sca/test.binding.system.scdl"));
+        addExtension("spring.extension", getClass().getClassLoader().getResource("META-INF/sca/spring.system.scdl"));
+        super.setUp();
+        context = CurrentCompositeContext.getContext();
+    }
+
+
+}

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Copied: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java (from r431618, incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/VMBinding.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java?p2=incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java&p1=incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/VMBinding.java&r1=431618&r2=431772&rev=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/VMBinding.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java Tue Aug 15 19:33:41 2006
@@ -16,17 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.container.spring.mock;
+package org.apache.tuscany.container.spring.mock.binding;
 
 import org.apache.tuscany.spi.model.Binding;
 
 
 /**
- * A concrete local/in-VM binding for test purposes. 
+ * A simple binding for test purposes.
  *
  * @version $$Rev$$ $$Date$$
  */
-public class VMBinding extends Binding {
+public class TestBinding extends Binding {
 
 
 }

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java?rev=431772&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java Tue Aug 15 19:33:41 2006
@@ -0,0 +1,43 @@
+/*
+ * 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.container.spring.mock.binding;
+
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SCAObject;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.extension.BindingBuilderExtension;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
+
+/**
+ * @version $Rev: 431036 $ $Date: 2006-08-12 06:58:50 -0700 (Sat, 12 Aug 2006) $
+ */
+public class TestBindingBuilder extends BindingBuilderExtension<TestBinding> {
+
+    @SuppressWarnings("unchecked")
+    public SCAObject build(CompositeComponent parent,
+                           BoundServiceDefinition<TestBinding> definition,
+                           DeploymentContext context) {
+        Class<?> interfaze = definition.getServiceContract().getInterfaceClass();
+        return new TestBindingService(definition.getName(), interfaze, parent, wireService);
+    }
+
+    protected Class<TestBinding> getBindingType() {
+        return TestBinding.class;
+    }
+}

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java?rev=431772&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java Tue Aug 15 19:33:41 2006
@@ -0,0 +1,56 @@
+/*
+ * 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.container.spring.mock.binding;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.osoa.sca.Version;
+import org.osoa.sca.annotations.Constructor;
+
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.extension.LoaderExtension;
+import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.loader.LoaderRegistry;
+
+/**
+ * @version $Rev: 431036 $ $Date: 2006-08-12 06:58:50 -0700 (Sat, 12 Aug 2006) $
+ */
+public class TestBindingLoader extends LoaderExtension<TestBinding> {
+
+    public static final QName BINDING_TEST = new QName(Version.XML_NAMESPACE_1_0, "binding.test");
+
+    @Constructor
+    public TestBindingLoader(@Autowire LoaderRegistry registry) {
+        super(registry);
+    }
+
+    public QName getXMLType() {
+        return BINDING_TEST;
+    }
+
+    public TestBinding load(CompositeComponent parent,
+                            XMLStreamReader reader,
+                            DeploymentContext context) throws XMLStreamException, LoaderException {
+        return new TestBinding();
+    }
+}

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingLoader.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java?rev=431772&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java Tue Aug 15 19:33:41 2006
@@ -0,0 +1,19 @@
+package org.apache.tuscany.container.spring.mock.binding;
+
+import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.extension.ServiceExtension;
+import org.apache.tuscany.spi.wire.WireService;
+
+/**
+ * @version $Rev: 431036 $ $Date: 2006-08-12 06:58:50 -0700 (Sat, 12 Aug 2006) $
+ */
+public class TestBindingService<T> extends ServiceExtension<T> {
+    public TestBindingService(String name,
+                              Class<T> interfaze,
+                              CompositeComponent parent,
+                              WireService wireService) throws CoreRuntimeException {
+        super(name, interfaze, parent, wireService);
+        // do nothing, but this could register with the host environment
+    }
+}

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/mock/binding/TestBindingService.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml?rev=431772&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml Tue Aug 15 19:33:41 2006
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:sca="http://www.springframework.org/schema/sca"
+       xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+http://www.springframework.org/schema/sca http://www.springframework.org/schema/sca/SpringSCA.xsd">
+
+    <bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
+    </bean>
+
+</beans>

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/application-context.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/default.scdl Tue Aug 15 19:33:41 2006
@@ -18,10 +18,13 @@
            name="groovy.test">
 
     <component name="Spring">
-        <implementation.spring location="."/>
-        <service name = "fooService">
-            <binding.spring/>
-        </service>
+        <implementation.spring location="META-INF/sca/application-context.xml">
+            <service name="fooService">
+                <binding.test/>
+                <interface.java class="org.apache.tuscany.container.spring.mock.TestBean"/>
+                <reference>testBean</reference>
+            </service>
+        </implementation.spring>
     </component>
 
 </composite>

Added: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/test.binding.system.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/test.binding.system.scdl?rev=431772&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/test.binding.system.scdl (added)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/META-INF/sca/test.binding.system.scdl Tue Aug 15 19:33:41 2006
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.    
+-->
+<!--
+    JavaScript configuration for the launcher environment.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+
+           name="testbinding">
+
+    <component name="BindingLoader">
+        <system:implementation.system class="org.apache.tuscany.container.spring.mock.binding.TestBindingLoader"/>
+    </component>
+
+    <component name="BindingBuilder">
+        <system:implementation.system class="org.apache.tuscany.container.spring.mock.binding.TestBindingBuilder"/>
+    </component>
+
+</composite>

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/ExplicitSpring.xml Tue Aug 15 19:33:41 2006
@@ -6,9 +6,9 @@
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/sca http://www.springframework.org/schema/sca/SpringSCA.xsd">
 
-<sca:service name="fooBean" type="org.apache.tuscany.container.spring.mock.TestBeanImpl" target="testBean"/>
+    <sca:service name="fooBean" type="org.apache.tuscany.container.spring.mock.TestBeanImpl" target="testBean"/>
 
-<bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
-</bean>
+    <bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
+    </bean>
 
 </beans>

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/org/apache/tuscany/container/spring/SpringConfigSchemaTest.xml Tue Aug 15 19:33:41 2006
@@ -6,12 +6,12 @@
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/sca http://www.springframework.org/schema/sca/spring-sca.xsd">
 
-<bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
-</bean>
+    <bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
+    </bean>
 
-<sca:service name="fooService" type="org.apache.tuscany.container.spring.mock.TestBean" target="testBean" />
+    <sca:service name="fooService" type="org.apache.tuscany.container.spring.mock.TestBean" target="testBean"/>
 
-<sca:reference name="fooReference" type="org.apache.tuscany.container.spring.mock.TestReference" />
+    <sca:reference name="fooReference" type="org.apache.tuscany.container.spring.mock.TestReference"/>
 
 
 </beans>

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/resources/test.xml Tue Aug 15 19:33:41 2006
@@ -6,7 +6,7 @@
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/sca http://www.springframework.org/schema/sca/SpringSCA.xsd">
 
-<bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
-</bean>
+    <bean id="testBean" class="org.apache.tuscany.container.spring.mock.TestBeanImpl">
+    </bean>
 
 </beans>

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Tue Aug 15 19:33:41 2006
@@ -89,8 +89,10 @@
 
         } else if (source instanceof CompositeComponent) {
             CompositeComponent<?> composite = (CompositeComponent) source;
-            for (SCAObject<?> child : composite.getChildren()) {
-                connect(child);
+            if (!composite.isSelfWiring()) {
+                for (SCAObject<?> child : composite.getChildren()) {
+                    connect(child);
+                }
             }
         } else if (source instanceof Reference) {
             Reference<?> reference = (Reference) source;

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaIntrospector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaIntrospector.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaIntrospector.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaIntrospector.java Tue Aug 15 19:33:41 2006
@@ -37,7 +37,7 @@
     /**
      * Introspect a Java interface and return a service contract definition.
      *
-     * @param type the interface to inspect
+     * @param type     the interface to inspect
      * @param callback the callback interface to inspec
      * @return a JavaServiceContract corresponding to the Java interface
      */

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java Tue Aug 15 19:33:41 2006
@@ -40,6 +40,11 @@
     void register(SCAObject context) throws InvalidComponentTypeException;
 
     /**
+     * Returns true if the composite wires its own children
+     */
+    boolean isSelfWiring();
+
+    /**
      * Returns the child associated with a given name
      */
     SCAObject getChild(String name);

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java Tue Aug 15 19:33:41 2006
@@ -56,6 +56,7 @@
     protected final List<Service> services = new ArrayList<Service>();
     protected final List<Reference> references = new ArrayList<Reference>();
     protected final Map<String, Document> propertyValues;
+    protected boolean selfWiring;
 
     protected CompositeComponentExtension(String name, CompositeComponent<?> parent,
                                           Map<String, Document> propertyValues) {
@@ -63,6 +64,10 @@
         this.propertyValues = propertyValues;
     }
 
+    public boolean isSelfWiring() {
+        return selfWiring;
+    }
+
     public Scope getScope() {
         return Scope.COMPOSITE;
     }
@@ -72,7 +77,7 @@
     }
 
     public void register(SCAObject child) {
-        assert child != null : "SCAObject was null";
+        assert child != null : "child was null";
         if (children.get(child.getName()) != null) {
             DuplicateNameException e = new DuplicateNameException("A context is already registered with name");
             e.setIdentifier(child.getName());

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?rev=431772&r1=431771&r2=431772&view=diff
==============================================================================
--- 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 Tue Aug 15 19:33:41 2006
@@ -41,7 +41,7 @@
  * @version $Rev$ $Date$
  */
 public class SCATestCase extends TestCase {
-    private CompositeComponent<?> component;
+    protected CompositeComponent<?> component;
     private CompositeContextImpl context;
     private Map<String, URL> extensions = new HashMap<String, URL>();
     private String applicationSCDL = Launcher.METAINF_APPLICATION_SCDL_PATH;



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