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/12 20:28:46 UTC

svn commit: r486286 - in /incubator/tuscany/java/sca: kernel/api/src/main/java/org/apache/tuscany/api/ kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ kernel/core/sr...

Author: jmarino
Date: Tue Dec 12 11:28:44 2006
New Revision: 486286

URL: http://svn.apache.org/viewvc?view=rev&rev=486286
Log:
enable system binding and clean up associated SCDL loading error conditions

Added:
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DependencyLoaderTestCase.java   (with props)
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilderTestCase.java   (with props)
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoaderTestCase.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java   (with props)
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java   (with props)
Modified:
    incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
    incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StAXLoaderRegistryImplTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java
    incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/main/resources/META-INF/sca/geronimo.jta.scdl

Modified: incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java (original)
+++ incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java Tue Dec 12 11:28:44 2006
@@ -119,8 +119,9 @@
             return super.getMessage();
         }
         StringBuilder b = new StringBuilder(256);
-        b.append(super.getMessage());
-
+        if (super.getMessage() != null) {
+            b.append(super.getMessage());
+        }
         if (identifier != null) {
             b.append(" [").append(identifier).append(']');
         }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Tue Dec 12 11:28:44 2006
@@ -32,6 +32,7 @@
 import org.apache.tuscany.spi.builder.BuilderConfigException;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 import org.apache.tuscany.spi.builder.ComponentBuilder;
+import org.apache.tuscany.spi.builder.NoRegisteredBuilderException;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.Reference;
@@ -51,6 +52,8 @@
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.WireService;
 
+import org.apache.tuscany.core.implementation.system.component.SystemService;
+
 /**
  * The default builder registry in the runtime
  *
@@ -100,29 +103,6 @@
     }
 
     @SuppressWarnings("unchecked")
-    public <I extends Implementation<?>> Component build(CompositeComponent parent,
-                                                         ComponentDefinition<I> componentDefinition,
-                                                         DeploymentContext deploymentContext) {
-        Class<?> implClass = componentDefinition.getImplementation().getClass();
-        ComponentBuilder<I> componentBuilder = (ComponentBuilder<I>) componentBuilders.get(implClass);
-        if (componentBuilder == null) {
-            BuilderConfigException e = new BuilderConfigException("No builder registered for implementation");
-            e.setIdentifier(implClass.getName());
-            e.addContextName(componentDefinition.getName());
-            throw e;
-        }
-
-        Component component = componentBuilder.build(parent, componentDefinition, deploymentContext);
-        ComponentType<?, ?, ?> componentType = componentDefinition.getImplementation().getComponentType();
-        assert componentType != null : "Component type must be set";
-        // create wires for the component
-        if (wireService != null && !(component instanceof SystemAtomicComponent)) {
-            wireService.createWires(component, componentDefinition);
-        }
-        return component;
-    }
-
-    @SuppressWarnings("unchecked")
     public <B extends Binding> void register(BindingBuilder<B> builder) {
         Type[] interfaces = builder.getClass().getGenericInterfaces();
         for (Type type : interfaces) {
@@ -149,14 +129,39 @@
     }
 
     @SuppressWarnings("unchecked")
+    public <I extends Implementation<?>> Component build(CompositeComponent parent,
+                                                         ComponentDefinition<I> componentDefinition,
+                                                         DeploymentContext deploymentContext) {
+        Class<?> implClass = componentDefinition.getImplementation().getClass();
+        ComponentBuilder<I> componentBuilder = (ComponentBuilder<I>) componentBuilders.get(implClass);
+        if (componentBuilder == null) {
+            BuilderConfigException e = new BuilderConfigException("No builder registered for implementation");
+            e.setIdentifier(implClass.getName());
+            e.addContextName(componentDefinition.getName());
+            throw e;
+        }
+
+        Component component = componentBuilder.build(parent, componentDefinition, deploymentContext);
+        ComponentType<?, ?, ?> componentType = componentDefinition.getImplementation().getComponentType();
+        assert componentType != null : "Component type must be set";
+        // create wires for the component
+        if (wireService != null && !(component instanceof SystemAtomicComponent)) {
+            wireService.createWires(component, componentDefinition);
+        }
+        return component;
+    }
+
+    @SuppressWarnings("unchecked")
     public <B extends Binding> SCAObject build(CompositeComponent parent,
                                                BoundServiceDefinition<B> boundServiceDefinition,
                                                DeploymentContext deploymentContext) {
         Class<?> bindingClass = boundServiceDefinition.getBinding().getClass();
         BindingBuilder<B> bindingBuilder = (BindingBuilder<B>) bindingBuilders.get(bindingClass);
+        if (bindingBuilder == null) {
+            throw new NoRegisteredBuilderException(bindingClass.getName());
+        }
         SCAObject object = bindingBuilder.build(parent, boundServiceDefinition, deploymentContext);
-        if (wireService != null) {
-            // wireService.createWires((Service) object, boundServiceDefinition);
+        if (wireService != null && !(object instanceof SystemService)) {
             String path = boundServiceDefinition.getTarget().getPath();
             ServiceContract<?> contract = boundServiceDefinition.getServiceContract();
             wireService.createWires((Service) object, path, contract);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Tue Dec 12 11:28:44 2006
@@ -98,10 +98,7 @@
         for (ReferenceDefinition targetlessReferenceDef : allTargetlessReferences) {
             component.register(builderRegistry.build(component, targetlessReferenceDef, deploymentContext));
         }
-
-        // HACK: [rfeng] We need a better way to propagate model extensions to SCAObject.
         component.getExtensions().putAll(componentType.getExtensions());
-
         return component;
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java Tue Dec 12 11:28:44 2006
@@ -76,7 +76,9 @@
         return COMPOSITE;
     }
 
-    public CompositeComponentType load(CompositeComponent parent, ModelObject object, XMLStreamReader reader,
+    public CompositeComponentType load(CompositeComponent parent,
+                                       ModelObject object,
+                                       XMLStreamReader reader,
                                        DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
         CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite =
             new CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/DependencyLoader.java Tue Dec 12 11:28:44 2006
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.implementation.composite;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -29,8 +30,9 @@
 import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.services.artifact.Artifact;
+import org.apache.tuscany.spi.loader.UnrecognizedElementException;
 import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.services.artifact.Artifact;
 
 /**
  * Loader for handling <dependency> elements.
@@ -55,7 +57,8 @@
     }
 
     public Dependency load(CompositeComponent parent,
-                           ModelObject object, XMLStreamReader reader,
+                           ModelObject object,
+                           XMLStreamReader reader,
                            DeploymentContext deploymentContext)
         throws XMLStreamException, LoaderException {
 
@@ -73,6 +76,13 @@
                 artifact.setClassifier(text);
             } else if (TYPE.equals(name)) {
                 artifact.setType(text);
+            } else {
+                Location location = reader.getLocation();
+                int line = location.getLineNumber();
+                int col = location.getColumnNumber();
+                UnrecognizedElementException e = new UnrecognizedElementException(name);
+                e.setIdentifier(line + "," + col);
+                throw e;
             }
         }
         Dependency dependency = new Dependency();

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java Tue Dec 12 11:28:44 2006
@@ -18,16 +18,20 @@
  */
 package org.apache.tuscany.core.implementation.system.builder;
 
+import java.net.URI;
+
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.builder.BindingBuilder;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
-import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.builder.InvalidTargetTypeException;
+import org.apache.tuscany.spi.builder.MissingTargetException;
 import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SCAObject;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.BindingBuilderExtension;
-import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.model.BoundReferenceDefinition;
 import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundWire;
 
 import org.apache.tuscany.core.implementation.system.component.SystemReference;
@@ -47,48 +51,60 @@
  *
  * @version $$Rev$$ $$Date$$
  */
-public class SystemBindingBuilder extends BindingBuilderExtension<SystemBinding> implements BindingBuilder<SystemBinding> {
+public class SystemBindingBuilder extends BindingBuilderExtension<SystemBinding>
+    implements BindingBuilder<SystemBinding> {
 
     public SystemService build(CompositeComponent parent,
-                               BoundServiceDefinition<SystemBinding> boundServiceDefinition,
+                               BoundServiceDefinition<SystemBinding> definition,
                                DeploymentContext deploymentContext) {
-        
-        QualifiedName targetName = new QualifiedName(boundServiceDefinition.getTarget().getPath());
-        Component target = (Component) parent.getSystemChild(targetName.getPartName());
+
+        URI uri = definition.getTarget();
+        if (uri == null) {
+            MissingTargetException e = new MissingTargetException("Target URI not specified");
+            e.setIdentifier(definition.getName());
+            throw e;
+        }
+        QualifiedName targetName = new QualifiedName(uri.getPath());
+        SCAObject target = parent.getSystemChild(targetName.getPartName());
         if (target == null) {
-            throw new BuilderConfigException("Target not found: [" + targetName + ']');
+            MissingTargetException e = new MissingTargetException(targetName.toString());
+            e.setIdentifier(definition.getName());
+            throw e;
+        } else if (!(target instanceof SystemAtomicComponent)) {
+            InvalidTargetTypeException e = new InvalidTargetTypeException(targetName.toString());
+            e.setIdentifier(definition.getName());
+            throw e;
         }
-        Class<?> interfaze = target.getServiceInterfaces().get(0);
-        String name = boundServiceDefinition.getName();
-        InboundWire inboundWire =
-            new SystemInboundWireImpl(name, interfaze, target);
-        SystemOutboundWire outboundWire =
-            new SystemOutboundWireImpl(name, targetName, interfaze);
-        SystemService service = new SystemServiceImpl(boundServiceDefinition.getName(), parent, new JavaServiceContract(interfaze));
+        SystemAtomicComponent atomicComponent = (SystemAtomicComponent) target;
+        Class<?> interfaze = definition.getServiceContract().getInterfaceClass();
+        String name = definition.getName();
+        InboundWire inboundWire = new SystemInboundWireImpl(name, interfaze, atomicComponent);
+        SystemOutboundWire outboundWire = new SystemOutboundWireImpl(name, targetName, interfaze);
+        ServiceContract<?> contract = definition.getServiceContract();
+        SystemService service = new SystemServiceImpl(definition.getName(), parent, contract);
         service.setInboundWire(inboundWire);
         service.setOutboundWire(outboundWire);
         return service;
     }
 
     public SystemReference build(CompositeComponent parent,
-                                 BoundReferenceDefinition<SystemBinding> boundReferenceDefinition,
+                                 BoundReferenceDefinition<SystemBinding> definition,
                                  DeploymentContext deploymentContext) {
         CompositeComponent autowireComponent = parent.getParent();
-        Class<?> interfaze = boundReferenceDefinition.getServiceContract().getInterfaceClass();
-        String name = boundReferenceDefinition.getName();
+        Class<?> interfaze = definition.getServiceContract().getInterfaceClass();
+        String name = definition.getName();
         SystemReferenceImpl reference = new SystemReferenceImpl(name, interfaze, parent);
         SystemInboundWire inboundWire = new SystemInboundWireImpl(name, interfaze);
-        String refName = boundReferenceDefinition.getName();
-        boolean required = boundReferenceDefinition.isRequired();
+        String refName = definition.getName();
+        boolean required = definition.isRequired();
         SystemOutboundWire outboundWire = new SystemOutboundAutowire(refName, interfaze, autowireComponent, required);
         reference.setInboundWire(inboundWire);
         reference.setOutboundWire(outboundWire);
         return reference;
     }
 
-	@Override
-	protected Class<SystemBinding> getBindingType() {
-		// TODO Auto-generated method stub
-		return SystemBinding.class;
-	}
+    @Override
+    protected Class<SystemBinding> getBindingType() {
+        return SystemBinding.class;
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java Tue Dec 12 11:28:44 2006
@@ -22,10 +22,12 @@
 import java.util.List;
 
 import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.spi.component.Component;
 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.ComponentBuilderExtension;
 import org.apache.tuscany.spi.model.Binding;
@@ -52,16 +54,12 @@
         this.connector = connector;
     }
 
-    protected Class<SystemCompositeImplementation> getImplementationType() {
-        return SystemCompositeImplementation.class;
-    }
-
+    @SuppressWarnings("unchecked")
     public Component build(CompositeComponent parent,
                            ComponentDefinition<SystemCompositeImplementation> componentDefinition,
                            DeploymentContext deploymentContext) throws BuilderConfigException {
         SystemCompositeImplementation impl = componentDefinition.getImplementation();
         CompositeComponentType<?, ?, ?> componentType = impl.getComponentType();
-
         // create lists of all components and services in this composite
         List<ComponentDefinition<? extends Implementation<?>>> allComponents =
             new ArrayList<ComponentDefinition<? extends Implementation<?>>>();
@@ -77,32 +75,39 @@
             }
         }
 
-        /*
-        // add in components and services from included composites
-        for (Include include : componentType.getIncludes().values()) {
-            CompositeComponentType<?, ?, ?> included = include.getIncluded();
-            allComponents.addAll(included.getComponents().values());
-            for (ServiceDefinition serviceDefinition : included.getServices().values()) {
-                if (serviceDefinition instanceof BoundServiceDefinition) {
-                    BoundServiceDefinition<? extends Binding> boundService =
-                        (BoundServiceDefinition<? extends Binding>) serviceDefinition;
-                    allBoundServices.add(boundService);
-                }
-            }
-        }
-        */
-
         // create the composite component
         String name = componentDefinition.getName();
         CompositeComponent component = new CompositeComponentImpl(name, parent, connector, true);
         for (ComponentDefinition<? extends Implementation> childComponentDefinition : allComponents) {
-            component.register(builderRegistry.build(component, childComponentDefinition, deploymentContext));
+            Component child;
+            try {
+                child = builderRegistry.build(component, childComponentDefinition, deploymentContext);
+            } catch (BuilderException e) {
+                e.addContextName(component.getName());
+                e.addContextName(name);
+                e.addContextName(parent.getName());
+                throw e;
+            }
+            component.register(child);
         }
 
         for (BoundServiceDefinition<? extends Binding> serviceDefinition : allBoundServices) {
-            component.register(builderRegistry.build(component, serviceDefinition, deploymentContext));
+            SCAObject object;
+            try {
+                object = builderRegistry.build(component, serviceDefinition, deploymentContext);
+            } catch (BuilderException e) {
+                e.addContextName(serviceDefinition.getName());
+                e.addContextName(name);
+                e.addContextName(parent.getName());
+                throw e;
+            }
+            component.register(object);
         }
         return component;
+    }
+
+    protected Class<SystemCompositeImplementation> getImplementationType() {
+        return SystemCompositeImplementation.class;
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java Tue Dec 12 11:28:44 2006
@@ -45,7 +45,8 @@
     protected SystemOutboundWire outboundWire;
     protected ServiceContract<?> serviceContract;
 
-    public SystemServiceImpl(String name, CompositeComponent parent, ServiceContract<?> serviceContract) throws CoreRuntimeException {
+    public SystemServiceImpl(String name, CompositeComponent parent, ServiceContract<?> serviceContract)
+        throws CoreRuntimeException {
         super(name, parent);
         this.serviceContract = serviceContract;
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoader.java Tue Dec 12 11:28:44 2006
@@ -63,7 +63,8 @@
         this.introspector = introspector;
     }
 
-    public void load(CompositeComponent parent, SystemImplementation implementation,
+    public void load(CompositeComponent parent,
+                     SystemImplementation implementation,
                      DeploymentContext deploymentContext) throws LoaderException {
         Class<?> implClass = implementation.getImplementationClass();
         URL sidefile = implClass.getResource(JavaIntrospectionHelper.getBaseName(implClass) + ".componentType");

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoader.java Tue Dec 12 11:28:44 2006
@@ -19,21 +19,23 @@
 package org.apache.tuscany.core.implementation.system.loader;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.osoa.sca.annotations.Constructor;
-
-import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+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;
 import org.apache.tuscany.spi.loader.LoaderUtil;
-import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.loader.UnrecognizedElementException;
 import org.apache.tuscany.spi.model.ModelObject;
 
+import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+
 /**
  * Loads information for a system implementation
  *
@@ -43,15 +45,13 @@
     public static final QName SYSTEM_IMPLEMENTATION =
         new QName("http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT", "implementation.system");
 
-    @Constructor({"registry"})
     public SystemImplementationLoader(@Autowire LoaderRegistry registry) {
         super(registry);
     }
 
     public SystemImplementation load(CompositeComponent parent,
                                      ModelObject object, XMLStreamReader reader,
-                                     DeploymentContext deploymentContext
-    )
+                                     DeploymentContext deploymentContext)
         throws XMLStreamException, LoaderException {
         assert SYSTEM_IMPLEMENTATION.equals(reader.getName());
         SystemImplementation implementation = new SystemImplementation();
@@ -59,8 +59,20 @@
         Class<?> implementationClass = LoaderUtil.loadClass(implClass, deploymentContext.getClassLoader());
         implementation.setImplementationClass(implementationClass);
         registry.loadComponentType(parent, implementation, deploymentContext);
-        LoaderUtil.skipToEndElement(reader);
-        return implementation;
+        while (true) {
+            int code = reader.next();
+            if (code == XMLStreamConstants.START_ELEMENT) {
+                Location location = reader.getLocation();
+                int line = location.getLineNumber();
+                int col = location.getColumnNumber();
+                UnrecognizedElementException e = new UnrecognizedElementException(reader.getName());
+                e.setIdentifier(line + "," + col);
+                throw e;
+
+            } else if (code == XMLStreamConstants.END_ELEMENT) {
+                return implementation;
+            }
+        }
     }
 
     public QName getXMLType() {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Tue Dec 12 11:28:44 2006
@@ -237,14 +237,11 @@
                     if (aProperty.getOverride() == OverrideOptions.MUST) {
                         throw new MissingMustOverridePropertyException(aProperty.getName());
                     } else if (aProperty.getDefaultValue() != null) {
-                        //} else {
                         PropertyValue propertyValue = new PropertyValue();
                         propertyValue.setName(aProperty.getName());
                         propertyValue.setValue(aProperty.getDefaultValue());
-                        // propertyValue.setValueFactory(aProperty.getDefaultValueFactory());
                         propertyValue.setValueFactory(new SimplePropertyObjectFactory(aProperty,
-                            propertyValue
-                                .getValue()));
+                            propertyValue.getValue()));
                         propertyValues.put(aProperty.getName(), propertyValue);
                     }
                 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java Tue Dec 12 11:28:44 2006
@@ -18,8 +18,8 @@
  */
 package org.apache.tuscany.core.loader;
 
-import java.net.URL;
 import java.net.MalformedURLException;
+import java.net.URL;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -27,18 +27,19 @@
 import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 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.LoaderUtil;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.MissingResourceException;
+import org.apache.tuscany.spi.loader.LoaderUtil;
 import org.apache.tuscany.spi.loader.MissingIncludeException;
-import org.apache.tuscany.spi.model.Include;
+import org.apache.tuscany.spi.loader.MissingResourceException;
 import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.apache.tuscany.spi.model.Include;
 import org.apache.tuscany.spi.model.ModelObject;
-import org.apache.tuscany.spi.annotation.Autowire;
+
 import org.apache.tuscany.core.deployer.ChildDeploymentContext;
 
 /**
@@ -86,13 +87,19 @@
                 throw mre;
             }
         } else {
-            MissingIncludeException mie = new MissingIncludeException();
+            MissingIncludeException mie = new MissingIncludeException("No SCDL location or resource specified");
             mie.setIdentifier(name);
             throw mie;
         }
 
         DeploymentContext childContext = new ChildDeploymentContext(deploymentContext, cl, url);
-        CompositeComponentType composite = loadFromSidefile(parent, url, childContext);
+        CompositeComponentType composite;
+        try {
+            composite = loadFromSidefile(parent, url, childContext);
+        } catch (LoaderException e) {
+            e.addContextName(name);
+            throw e;
+        }
 
         Include include = new Include();
         include.setName(name);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java Tue Dec 12 11:28:44 2006
@@ -27,6 +27,7 @@
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.Location;
 
 import org.osoa.sca.annotations.Init;
 
@@ -90,7 +91,12 @@
         monitor.elementLoad(name);
         StAXElementLoader<? extends ModelObject> loader = loaders.get(name);
         if (loader == null) {
-            throw new UnrecognizedElementException(name);
+            Location location = reader.getLocation();
+            int line = location.getLineNumber();
+            int col = location.getColumnNumber();
+            UnrecognizedElementException e = new UnrecognizedElementException(name);
+            e.setIdentifier(line + "," + col);
+            throw e;
         }
         return loader.load(parent, object, reader, deploymentContext);
     }
@@ -116,6 +122,10 @@
                     } else {
                         UnrecognizedElementException e = new UnrecognizedElementException(name);
                         e.setResourceURI(url.toString());
+                        Location location = reader.getLocation();
+                        int line = location.getLineNumber();
+                        int col = location.getColumnNumber();
+                        e.setIdentifier(line + "," + col);
                         throw e;
                     }
                 } finally {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java Tue Dec 12 11:28:44 2006
@@ -59,8 +59,7 @@
 
     public ReferenceDefinition load(CompositeComponent parent,
                                     ModelObject object, XMLStreamReader reader,
-                                    DeploymentContext deploymentContext
-    )
+                                    DeploymentContext deploymentContext)
         throws XMLStreamException, LoaderException {
         assert REFERENCE.equals(reader.getName());
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java Tue Dec 12 11:28:44 2006
@@ -21,9 +21,9 @@
 import java.lang.reflect.Proxy;
 import java.util.Map;
 
-import org.osoa.sca.annotations.Constructor;
 import org.osoa.sca.annotations.Init;
 import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Constructor;
 
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.annotation.Autowire;
@@ -33,6 +33,8 @@
 import org.apache.tuscany.spi.component.ReferenceNotFoundException;
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.model.Binding;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.ComponentType;
 import org.apache.tuscany.spi.model.CompositeComponentType;
@@ -54,6 +56,7 @@
 
 import org.apache.tuscany.core.implementation.composite.CompositeReference;
 import org.apache.tuscany.core.implementation.composite.CompositeService;
+import org.apache.tuscany.core.implementation.system.model.SystemBinding;
 import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
 import org.apache.tuscany.core.wire.InboundWireImpl;
 import org.apache.tuscany.core.wire.InvokerInterceptor;
@@ -72,7 +75,7 @@
         super(null, null);
     }
 
-    @Constructor({"workContext", "policyregisty"})
+    @Constructor
     public JDKWireService(@Autowire WorkContext context, @Autowire PolicyBuilderRegistry policyRegistry) {
         super(context, policyRegistry);
     }
@@ -143,6 +146,54 @@
         return new InboundInvocationChainImpl(operation);
     }
 
+    public OutboundWire createWire(ReferenceTarget reference, ReferenceDefinition def) {
+        //TODO multiplicity
+        if (reference.getTargets().size() != 1) {
+            throw new UnsupportedOperationException();
+        }
+        ServiceContract<?> contract = def.getServiceContract();
+        OutboundWire wire = new OutboundWireImpl();
+        QualifiedName qName = new QualifiedName(reference.getTargets().get(0).toString());
+        wire.setTargetName(qName);
+        wire.setServiceContract(contract);
+        wire.setReferenceName(reference.getReferenceName());
+        for (Operation<?> operation : contract.getOperations().values()) {
+            //TODO handle policy
+            OutboundInvocationChain chain = createOutboundChain(operation);
+            wire.addInvocationChain(operation, chain);
+
+        }
+        if (contract.getCallbackName() != null) {
+            wire.setCallbackInterface(contract.getCallbackClass());
+            for (Operation<?> operation : contract.getCallbackOperations().values()) {
+                InboundInvocationChain callbackTargetChain = createInboundChain(operation);
+                // TODO handle policy
+                //TODO statement below could be cleaner
+                callbackTargetChain.addInterceptor(new InvokerInterceptor());
+                wire.addTargetCallbackInvocationChain(operation, callbackTargetChain);
+            }
+        }
+        return wire;
+    }
+
+    public InboundWire createWire(ServiceDefinition service) {
+        InboundWire wire = new InboundWireImpl();
+        ServiceContract<?> contract = service.getServiceContract();
+        wire.setServiceContract(contract);
+        wire.setServiceName(service.getName());
+        for (Operation<?> operation : contract.getOperations().values()) {
+            InboundInvocationChain chain = createInboundChain(operation);
+            // TODO handle policy
+            //TODO statement below could be cleaner
+            chain.addInterceptor(new InvokerInterceptor());
+            wire.addInvocationChain(operation, chain);
+        }
+        if (contract.getCallbackName() != null) {
+            wire.setCallbackReferenceName(service.getCallbackReferenceName());
+        }
+        return wire;
+    }
+
     public void createWires(Component component, ComponentDefinition<?> definition) {
         Implementation<?> implementation = definition.getImplementation();
         ComponentType<?, ?, ?> componentType = implementation.getComponentType();
@@ -154,6 +205,12 @@
                 // by CompositeBuilder and thus its children, in particular composite services,
                 // have been registered
                 CompositeComponent compositeComponent = (CompositeComponent) component;
+                if (service instanceof BoundServiceDefinition) {
+                    Binding binding = ((BoundServiceDefinition) service).getBinding();
+                    if (binding instanceof SystemBinding) {
+                        continue;
+                    }
+                }
                 Service serviceChild = (Service) compositeComponent.getChild(service.getName());
                 assert serviceChild != null;
                 if (serviceChild instanceof CompositeService) {
@@ -227,54 +284,6 @@
         reference.setOutboundWire(outboundWire);
     }
 
-    public OutboundWire createWire(ReferenceTarget reference, ReferenceDefinition def) {
-        //TODO multiplicity
-        if (reference.getTargets().size() != 1) {
-            throw new UnsupportedOperationException();
-        }
-        ServiceContract<?> contract = def.getServiceContract();
-        OutboundWire wire = new OutboundWireImpl();
-        QualifiedName qName = new QualifiedName(reference.getTargets().get(0).toString());
-        wire.setTargetName(qName);
-        wire.setServiceContract(contract);
-        wire.setReferenceName(reference.getReferenceName());
-        for (Operation<?> operation : contract.getOperations().values()) {
-            //TODO handle policy
-            OutboundInvocationChain chain = createOutboundChain(operation);
-            wire.addInvocationChain(operation, chain);
-
-        }
-        if (contract.getCallbackName() != null) {
-            wire.setCallbackInterface(contract.getCallbackClass());
-            for (Operation<?> operation : contract.getCallbackOperations().values()) {
-                InboundInvocationChain callbackTargetChain = createInboundChain(operation);
-                // TODO handle policy
-                //TODO statement below could be cleaner
-                callbackTargetChain.addInterceptor(new InvokerInterceptor());
-                wire.addTargetCallbackInvocationChain(operation, callbackTargetChain);
-            }
-        }
-        return wire;
-    }
-
-    public InboundWire createWire(ServiceDefinition service) {
-        InboundWire wire = new InboundWireImpl();
-        ServiceContract<?> contract = service.getServiceContract();
-        wire.setServiceContract(contract);
-        wire.setServiceName(service.getName());
-        for (Operation<?> operation : contract.getOperations().values()) {
-            InboundInvocationChain chain = createInboundChain(operation);
-            // TODO handle policy
-            //TODO statement below could be cleaner
-            chain.addInterceptor(new InvokerInterceptor());
-            wire.addInvocationChain(operation, chain);
-        }
-        if (contract.getCallbackName() != null) {
-            wire.setCallbackReferenceName(service.getCallbackReferenceName());
-        }
-        return wire;
-    }
-
     public void createWires(Service service, String targetName, ServiceContract<?> contract) {
         InboundWire inboundWire = new InboundWireImpl();
 
@@ -305,8 +314,8 @@
             outboundWire.setCallbackInterface(contract.getCallbackClass());
             for (Operation<?> operation : contract.getCallbackOperations().values()) {
                 InboundInvocationChain callbackTargetChain = createInboundChain(operation);
-// TODO handle policy
-//TODO statement below could be cleaner
+                // TODO handle policy
+                //TODO statement below could be cleaner
                 callbackTargetChain.addInterceptor(new InvokerInterceptor());
                 outboundWire.addTargetCallbackInvocationChain(operation, callbackTargetChain);
             }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl Tue Dec 12 11:28:44 2006
@@ -31,9 +31,9 @@
         <system:implementation.system class="org.apache.tuscany.core.implementation.system.loader.SystemBindingLoader"/>
     </component>
     
-    <!-- component name="system.bindingBuilder">
+    <component name="system.bindingBuilder">
         <system:implementation.system class="org.apache.tuscany.core.implementation.system.builder.SystemBindingBuilder"/>
-    </component -->
+    </component>
 
     <component name="system.componentTypeLoader">
         <system:implementation.system class="org.apache.tuscany.core.implementation.system.loader.SystemComponentTypeLoader"/>

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DependencyLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DependencyLoaderTestCase.java?view=auto&rev=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DependencyLoaderTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DependencyLoaderTestCase.java Tue Dec 12 11:28:44 2006
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.composite;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.loader.UnrecognizedElementException;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DependencyLoaderTestCase extends TestCase {
+    private static final String NS = "http://tuscany.apache.org/xmlns/1.0-SNAPSHOT";
+    private static final QName DEPENDENCY = new QName(NS, "dependency");
+    private static final QName GROUP = new QName(NS, "group");
+    private static final QName NAME = new QName(NS, "name");
+    private static final QName VERSION = new QName(NS, "version");
+    private static final QName CLASSIFIER = new QName(NS, "classifier");
+    private static final QName TYPE = new QName(NS, "type");
+
+    public void testLoad() throws Exception {
+        LoaderRegistry registry = EasyMock.createNiceMock(LoaderRegistry.class);
+        EasyMock.replay(registry);
+        XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(GROUP);
+        EasyMock.expect(reader.getElementText()).andReturn("group");
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(NAME);
+        EasyMock.expect(reader.getElementText()).andReturn("name");
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(VERSION);
+        EasyMock.expect(reader.getElementText()).andReturn("1");
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(CLASSIFIER);
+        EasyMock.expect(reader.getElementText()).andReturn("classifier");
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(TYPE);
+        EasyMock.expect(reader.getElementText()).andReturn("type");
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.END_ELEMENT);
+        EasyMock.replay(reader);
+        DependencyLoader loader = new DependencyLoader(registry);
+        Dependency dependency = loader.load(null, null, reader, null);
+        assertEquals("group", dependency.getArtifact().getGroup());
+        assertEquals("name", dependency.getArtifact().getName());
+        assertEquals("1", dependency.getArtifact().getVersion());
+        assertEquals("classifier", dependency.getArtifact().getClassifier());
+        assertEquals("type", dependency.getArtifact().getType());
+    }
+
+    public void testLoaderRegister() {
+        LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
+        registry.registerLoader(EasyMock.eq(DEPENDENCY), EasyMock.isA(DependencyLoader.class));
+        EasyMock.replay(registry);
+        DependencyLoader loader = new DependencyLoader(registry);
+        loader.start();
+        EasyMock.verify(registry);
+    }
+
+    public void testUnrecognizedElement() throws Exception {
+        LoaderRegistry registry = EasyMock.createNiceMock(LoaderRegistry.class);
+        EasyMock.replay(registry);
+        XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+        EasyMock.expect(reader.nextTag()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(new QName("foo", "bar"));
+        EasyMock.expect(reader.getElementText()).andReturn("foo");
+        EasyMock.expect(reader.getLocation()).andReturn(new MockLocation());
+        EasyMock.replay(reader);
+        DependencyLoader loader = new DependencyLoader(registry);
+        try {
+            loader.load(null, null, reader, null);
+            fail();
+        } catch (UnrecognizedElementException e) {
+            // expected
+        }
+    }
+
+    private class MockLocation implements Location {
+
+        public int getLineNumber() {
+            return 0;
+        }
+
+        public int getColumnNumber() {
+            return 0;
+        }
+
+        public int getCharacterOffset() {
+            return 0;
+        }
+
+        public String getPublicId() {
+            return null;
+        }
+
+        public String getSystemId() {
+            return null;
+        }
+    }
+}

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

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

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilderTestCase.java?view=auto&rev=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilderTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilderTestCase.java Tue Dec 12 11:28:44 2006
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.system.builder;
+
+import java.net.URI;
+
+import org.apache.tuscany.spi.builder.BuilderRegistry;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.implementation.system.component.SystemService;
+import org.apache.tuscany.core.implementation.system.model.SystemBinding;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class SystemBindingBuilderTestCase extends TestCase {
+
+    public void testBuild() throws Exception {
+        SystemBindingBuilder builder = new SystemBindingBuilder();
+        SystemAtomicComponent componet = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.replay(componet);
+        CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
+        EasyMock.expect(parent.getSystemChild("foo")).andReturn(componet);
+        EasyMock.replay(parent);
+        DeploymentContext context = EasyMock.createMock(DeploymentContext.class);
+        EasyMock.replay(context);
+        BoundServiceDefinition<SystemBinding> definition = new BoundServiceDefinition<SystemBinding>();
+        definition.setName("bar");
+        definition.setTarget(new URI("foo"));
+        ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) {
+        };
+        definition.setServiceContract(contract);
+        SystemService service = builder.build(parent, definition, context);
+        assertEquals("bar", service.getName());
+        assertEquals(contract, service.getBindingServiceContract());
+        assertEquals(parent, service.getParent());
+    }
+
+    public void testRegister() {
+        BuilderRegistry registry = EasyMock.createMock(BuilderRegistry.class);
+        registry.register(EasyMock.eq(SystemBinding.class), EasyMock.isA(SystemBindingBuilder.class));
+        EasyMock.replay(registry);
+        SystemBindingBuilder builder = new SystemBindingBuilder();
+        builder.setBuilderRegistry(registry);
+        builder.init();
+        EasyMock.verify(registry);
+    }
+}

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

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

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoaderTestCase.java?view=auto&rev=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoaderTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemImplementationLoaderTestCase.java Tue Dec 12 11:28:44 2006
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.system.loader;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.loader.UnrecognizedElementException;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class SystemImplementationLoaderTestCase extends TestCase {
+
+    public static final QName SYSTEM_IMPLEMENTATION =
+        new QName("http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT", "implementation.system");
+
+    public void testLoad() throws Exception {
+        LoaderRegistry registry = EasyMock.createNiceMock(LoaderRegistry.class);
+        EasyMock.replay(registry);
+        DeploymentContext context = EasyMock.createMock(DeploymentContext.class);
+        EasyMock.expect(context.getClassLoader()).andReturn(getClass().getClassLoader());
+        EasyMock.replay(context);
+        XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+        EasyMock.expect(reader.getName()).andReturn(SYSTEM_IMPLEMENTATION);
+        EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("class")))
+            .andReturn(getClass().getName());
+        EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+        EasyMock.replay(reader);
+        SystemImplementationLoader loader = new SystemImplementationLoader(registry);
+        SystemImplementation impl = loader.load(null, null, reader, context);
+        assertEquals(getClass(), impl.getImplementationClass());
+        EasyMock.verify(reader);
+        EasyMock.verify(context);
+    }
+
+    public void testUnrecognizedElement() throws Exception {
+        LoaderRegistry registry = EasyMock.createNiceMock(LoaderRegistry.class);
+        EasyMock.replay(registry);
+        DeploymentContext context = EasyMock.createMock(DeploymentContext.class);
+        EasyMock.expect(context.getClassLoader()).andReturn(getClass().getClassLoader());
+        EasyMock.replay(context);
+        XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+        EasyMock.expect(reader.getName()).andReturn(SYSTEM_IMPLEMENTATION).atLeastOnce();
+        EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("class")))
+            .andReturn(getClass().getName());
+        EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.START_ELEMENT);
+        EasyMock.expect(reader.getLocation()).andReturn(new MockLocation());
+        EasyMock.replay(reader);
+        SystemImplementationLoader loader = new SystemImplementationLoader(registry);
+        try {
+            loader.load(null, null, reader, context);
+            fail();
+        } catch (UnrecognizedElementException e) {
+            // expected
+        }
+    }
+
+    private class MockLocation implements Location {
+
+        public int getLineNumber() {
+            return 0;
+        }
+
+        public int getColumnNumber() {
+            return 0;
+        }
+
+        public int getCharacterOffset() {
+            return 0;
+        }
+
+        public String getPublicId() {
+            return null;
+        }
+
+        public String getSystemId() {
+            return null;
+        }
+    }
+
+}

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

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

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StAXLoaderRegistryImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StAXLoaderRegistryImplTestCase.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StAXLoaderRegistryImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StAXLoaderRegistryImplTestCase.java Tue Dec 12 11:28:44 2006
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.loader;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
@@ -84,6 +85,7 @@
 
     public void testUnsuccessfulDispatch() throws LoaderException, XMLStreamException {
         EasyMock.expect(mockReader.getName()).andReturn(name);
+        EasyMock.expect(mockReader.getLocation()).andReturn(new MockLocation());
         EasyMock.replay(mockReader);
         mockMonitor.elementLoad(EasyMock.eq(name));
         EasyMock.replay(mockMonitor);
@@ -127,5 +129,28 @@
         mockReader = EasyMock.createMock(XMLStreamReader.class);
         modelObject = new ModelObject() {
         };
+    }
+
+    private class MockLocation implements Location {
+
+        public int getLineNumber() {
+            return 0;
+        }
+
+        public int getColumnNumber() {
+            return 0;
+        }
+
+        public int getCharacterOffset() {
+            return 0;
+        }
+
+        public String getPublicId() {
+            return null;
+        }
+
+        public String getSystemId() {
+            return null;
+        }
     }
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BindingBuilder.java Tue Dec 12 11:28:44 2006
@@ -35,10 +35,10 @@
  */
 public interface BindingBuilder<B extends Binding> {
     Service build(CompositeComponent parent,
-                    BoundServiceDefinition<B> boundServiceDefinition,
-                    DeploymentContext deploymentContext);
+                  BoundServiceDefinition<B> boundServiceDefinition,
+                  DeploymentContext deploymentContext) throws BuilderException;
 
     Reference build(CompositeComponent parent,
                     BoundReferenceDefinition<B> boundReferenceDefinition,
-                    DeploymentContext deploymentContext);
+                    DeploymentContext deploymentContext) throws BuilderException;
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Builder.java Tue Dec 12 11:28:44 2006
@@ -43,40 +43,39 @@
      * @param componentDefinition the component definition as parsed from an SCA assembly
      * @param deploymentContext   the current deployment context
      * @return a newly created component
+     * @throws BuilderException
      */
     <I extends Implementation<?>> Component build(CompositeComponent parent,
-                                                     ComponentDefinition<I> componentDefinition,
-                                                     DeploymentContext deploymentContext);
+                                                  ComponentDefinition<I> componentDefinition,
+                                                  DeploymentContext deploymentContext) throws BuilderException;
 
     /**
      * TODO: JavaDoc this when we know if we will still register Services as contexts
      */
     <B extends Binding> SCAObject build(CompositeComponent parent,
                                         BoundServiceDefinition<B> boundServiceDefinition,
-                                        DeploymentContext deploymentContext);
+                                        DeploymentContext deploymentContext) throws BuilderException;
 
     /**
      * TODO: JavaDoc this when we know if we will still register References as contexts
      */
     <B extends Binding> SCAObject build(CompositeComponent parent,
                                         BoundReferenceDefinition<B> boundReferenceDefinition,
-                                        DeploymentContext deploymentContext);
+                                        DeploymentContext deploymentContext) throws BuilderException;
 
     /**
-     * TODO: Make sure that this method belongs here
-     * Allow a builder registry to provide building of bindless services via
-     * appropriate registered builder
+     * TODO: Make sure that this method belongs here Allow a builder registry to provide building of bindless services
+     * via appropriate registered builder
      */
     SCAObject build(CompositeComponent parent,
-                                       BindlessServiceDefinition serviceDefinition,
-                                       DeploymentContext deploymentContext);
+                    BindlessServiceDefinition serviceDefinition,
+                    DeploymentContext deploymentContext) throws BuilderException;
 
     /**
-     * TODO: Make sure that this method belongs here
-     * Allow a builder registry to provide building of targetless references via
-     * appropriate registered builder
+     * TODO: Make sure that this method belongs here Allow a builder registry to provide building of targetless
+     * references via appropriate registered builder
      */
     SCAObject build(CompositeComponent parent,
-                                       ReferenceDefinition referenceDefinition,
-                                       DeploymentContext deploymentContext);
+                    ReferenceDefinition referenceDefinition,
+                    DeploymentContext deploymentContext) throws BuilderException;
 }

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java?view=auto&rev=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java Tue Dec 12 11:28:44 2006
@@ -0,0 +1,41 @@
+/*
+ * 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.spi.builder;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class InvalidTargetTypeException extends BuilderConfigException {
+
+
+    public InvalidTargetTypeException() {
+    }
+
+    public InvalidTargetTypeException(String message) {
+        super(message);
+    }
+
+    public InvalidTargetTypeException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public InvalidTargetTypeException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java?view=auto&rev=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java Tue Dec 12 11:28:44 2006
@@ -0,0 +1,42 @@
+/*
+ * 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.spi.builder;
+
+/**
+ * Denotes a missing wire target in an assembly
+ *
+ * @version $Rev$ $Date$
+ */
+public class MissingTargetException extends BuilderConfigException {
+
+    public MissingTargetException() {
+    }
+
+    public MissingTargetException(String message) {
+        super(message);
+    }
+
+    public MissingTargetException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public MissingTargetException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java?view=auto&rev=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java Tue Dec 12 11:28:44 2006
@@ -0,0 +1,41 @@
+/*
+ * 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.spi.builder;
+
+/**
+ * Raised when a builder cannot be found for a SCDL entry type
+ *
+ * @version $Rev$ $Date$
+ */
+public class NoRegisteredBuilderException extends BuilderException {
+    public NoRegisteredBuilderException() {
+    }
+
+    public NoRegisteredBuilderException(String message) {
+        super(message);
+    }
+
+    public NoRegisteredBuilderException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public NoRegisteredBuilderException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/MissingIncludeException.java Tue Dec 12 11:28:44 2006
@@ -32,4 +32,9 @@
     public MissingIncludeException() {
         super();
     }
+
+
+    public MissingIncludeException(String message) {
+        super(message);
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/loader/UnrecognizedElementException.java Tue Dec 12 11:28:44 2006
@@ -37,7 +37,6 @@
      */
     public UnrecognizedElementException(QName element) {
         super(element.toString());
-        setIdentifier(getMessage());
         this.element = element;
     }
 

Modified: incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/main/resources/META-INF/sca/geronimo.jta.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/main/resources/META-INF/sca/geronimo.jta.scdl?view=diff&rev=486286&r1=486285&r2=486286
==============================================================================
--- incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/main/resources/META-INF/sca/geronimo.jta.scdl (original)
+++ incubator/tuscany/java/sca/services/transaction/transaction.geronimo/src/main/resources/META-INF/sca/geronimo.jta.scdl Tue Dec 12 11:28:44 2006
@@ -24,10 +24,11 @@
            xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
            name="org.apache.tuscany.transaction.geronimo.JTAExtension">
 
-	<!-- service name="TransactionManagerService"> 
-	    <reference>TransactionManager</reference> 
+	<service name="TransactionManagerService">
+        <interface.java interface = "javax.transaction.TransactionManager"/>
+        <reference>TransactionManager</reference>
 	    <system:binding.system/> 
-	</service -->
+	</service>
 	
     <dependency xmlns="http://tuscany.apache.org/xmlns/1.0-SNAPSHOT">
         <group>org.apache.tuscany.sca.transaction</group>



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