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 2007/02/03 04:16:22 UTC

svn commit: r502853 [2/7] - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/binding/local/ core/src/main/java/org/apache/tuscany/core/bootstrap/ core/src/main/java/org/apache/tuscany/core/builder/ core/src/main/java/or...

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/CompositeScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/CompositeScopeContainer.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/CompositeScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/CompositeScopeContainer.java Fri Feb  2 19:16:15 2007
@@ -35,8 +35,8 @@
 import org.apache.tuscany.spi.event.Event;
 import org.apache.tuscany.spi.model.Scope;
 
-import org.apache.tuscany.core.component.event.CompositeStart;
-import org.apache.tuscany.core.component.event.CompositeStop;
+import org.apache.tuscany.core.component.event.ComponentStart;
+import org.apache.tuscany.core.component.event.ComponentStop;
 
 /**
  * A scope context which manages atomic component instances keyed by composite
@@ -63,7 +63,7 @@
 
     public void onEvent(Event event) {
         checkInit();
-        if (event instanceof CompositeStart) {
+        if (event instanceof ComponentStart) {
             try {
                 eagerInitComponents();
             } catch (ObjectCreationException e) {
@@ -72,7 +72,7 @@
                 monitor.eagerInitializationError(e);
             }
             lifecycleState = RUNNING;
-        } else if (event instanceof CompositeStop) {
+        } else if (event instanceof ComponentStop) {
             shutdownContexts();
         }
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Fri Feb  2 19:16:15 2007
@@ -43,7 +43,7 @@
 import org.apache.tuscany.spi.model.Implementation;
 
 import org.apache.tuscany.api.annotation.Monitor;
-import org.apache.tuscany.core.component.event.CompositeStop;
+import org.apache.tuscany.core.component.event.ComponentStop;
 import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
 
 /**
@@ -53,9 +53,9 @@
  */
 public class DeployerImpl implements Deployer {
     protected XMLInputFactory xmlFactory;
-    private Loader loader;
     protected Builder builder;
     protected ScopeContainerMonitor monitor;
+    private Loader loader;
 
     public DeployerImpl(XMLInputFactory xmlFactory, Loader loader, Builder builder) {
         this.xmlFactory = xmlFactory;
@@ -91,7 +91,7 @@
         try {
             load(parent, componentDefinition, deploymentContext);
         } catch (LoaderException e) {
-            e.addContextName(componentDefinition.getName());
+            e.addContextName(componentDefinition.getName().toString());
             throw e;
         }
         Component component = (Component) build(parent, componentDefinition, deploymentContext);
@@ -99,7 +99,7 @@
         RuntimeEventListener listener = new RuntimeEventListener() {
             public void onEvent(Event event) {
                 scopeContainer.onEvent(event);
-                if (event instanceof CompositeStop) {
+                if (event instanceof ComponentStop) {
                     scopeContainer.stop();
                 }
             }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java Fri Feb  2 19:16:15 2007
@@ -190,7 +190,7 @@
     }
 
     protected void onReferenceWire(OutboundWire wire) {
-        String name = wire.getReferenceName();
+        String name = wire.getUri().getFragment();
         Member member = referenceSites.get(name);
         if (member != null) {
             injectors.add(createInjector(member, wire));
@@ -208,7 +208,7 @@
 
     public void onReferenceWires(List<OutboundWire> wires) {
         assert wires.size() > 0 : "Wires were empty";
-        String referenceName = wires.get(0).getReferenceName();
+        String referenceName = wires.get(0).getUri().getFragment();
         Member member = referenceSites.get(referenceName);
         if (member == null) {
             if (constructorParamNames.contains(referenceName)) {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java Fri Feb  2 19:16:15 2007
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.implementation;
 
 import java.lang.reflect.Member;
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -40,7 +41,7 @@
  * @version $Rev$ $Date$
  */
 public class PojoConfiguration {
-    private String name;
+    private URI name;
     private CompositeComponent parent;
     //private ScopeContainer scopeContainer;
     private PojoObjectFactory<?> instanceFactory;
@@ -62,11 +63,11 @@
     private long maxAge = -1;
     private Class implementationClass;
 
-    public String getName() {
+    public URI getName() {
         return name;
     }
 
-    public void setName(String name) {
+    public void setName(URI name) {
         this.name = name;
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java Fri Feb  2 19:16:15 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
@@ -28,6 +30,7 @@
 import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.spi.component.ComponentRegistrationException;
 import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.MalformedNameException;
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.TargetInvokerCreationException;
 import org.apache.tuscany.spi.event.Event;
@@ -36,8 +39,8 @@
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
-import org.apache.tuscany.core.component.event.CompositeStart;
-import org.apache.tuscany.core.component.event.CompositeStop;
+import org.apache.tuscany.core.component.event.ComponentStart;
+import org.apache.tuscany.core.component.event.ComponentStop;
 
 /**
  * The base implementation of a composite context
@@ -59,7 +62,7 @@
      * @param connector      the connector for fusing wires
      * @param propertyValues the values of this composite's Properties
      */
-    public AbstractCompositeComponent(String name,
+    public AbstractCompositeComponent(URI name,
                                       CompositeComponent parent,
                                       Connector connector,
                                       Map<String, Document> propertyValues) {
@@ -68,12 +71,24 @@
 
     public <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance)
         throws ComponentRegistrationException {
-        register(new SystemSingletonAtomicComponent<S, I>(name, this, service, instance));
+        URI uri;
+        try {
+            uri = new URI(name);
+        } catch (URISyntaxException e) {
+            throw new MalformedNameException(e);
+        }
+        register(new SystemSingletonAtomicComponent<S, I>(uri, this, service, instance));
     }
 
     public <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance)
         throws ComponentRegistrationException {
-        register(new SystemSingletonAtomicComponent<S, I>(name, this, services, instance));
+        URI uri;
+        try {
+            uri = new URI(name);
+        } catch (URISyntaxException e) {
+            throw new MalformedNameException(e);
+        }
+        register(new SystemSingletonAtomicComponent<S, I>(uri, this, services, instance));
     }
 
     public void start() {
@@ -92,7 +107,7 @@
             initialized = true;
             lifecycleState = INITIALIZED;
         }
-        publish(new CompositeStart(this, this));
+        publish(new ComponentStart(this, getUri()));
     }
 
     public void stop() {
@@ -106,7 +121,7 @@
         for (SCAObject child : systemChildren.values()) {
             child.stop();
         }
-        publish(new CompositeStop(this, this));
+        publish(new ComponentStop(this, getUri()));
         // need to block a start until reset is complete
         initializeLatch = new CountDownLatch(2);
         lifecycleState = STOPPING;

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=502853&r1=502852&r2=502853
==============================================================================
--- 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 Fri Feb  2 19:16:15 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import java.net.URI;
+
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.CompositeComponent;
@@ -38,7 +40,7 @@
                            DeploymentContext deploymentContext) throws BuilderException {
         CompositeImplementation implementation = componentDefinition.getImplementation();
         CompositeComponentType<?, ?, ?> componentType = implementation.getComponentType();
-        String name = componentDefinition.getName();
+        URI name = componentDefinition.getName();
         CompositeComponentImpl component = new CompositeComponentImpl(name, parent, connector, null);
 
         return build(parent, component, componentType, deploymentContext);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java Fri Feb  2 19:16:15 2007
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.implementation.composite;
 
 import java.util.Map;
+import java.net.URI;
 
 import org.w3c.dom.Document;
 
@@ -31,7 +32,6 @@
  * @version $Rev$ $Date$
  */
 public class CompositeComponentImpl extends AbstractCompositeComponent {
-    private String uri;
     private boolean systemComposite;
 
     /**
@@ -42,69 +42,27 @@
      * @param connector      the connector to use for wires
      * @param propertyValues this composite's Property values
      */
-    public CompositeComponentImpl(String name,
-                                  CompositeComponent parent,
-                                  Connector connector,
-                                  Map<String, Document> propertyValues) {
-        this(name, null, parent, connector, propertyValues);
-    }
-
-    /**
-     * Constructor specifying if the composite is a system composite
-     *
-     * @param name            the name of this Component
-     * @param parent          this component's parent
-     * @param connector       the connector to use for wires
-     * @param systemComposite true if the composite is a system composite
-     */
-    public CompositeComponentImpl(String name,
-                                  CompositeComponent parent,
-                                  Connector connector,
-                                  boolean systemComposite) {
-        this(name, null, parent, connector, null, systemComposite);
-    }
-
-    /**
-     * Constructor specifying name and URI.
-     *
-     * @param name           the name of this Component
-     * @param uri            the unique identifier for this component
-     * @param parent         this component's parent
-     * @param connector      the connector to use for wires
-     * @param propertyValues this composite's Property values
-     */
-    public CompositeComponentImpl(String name,
-                                  String uri,
+    public CompositeComponentImpl(URI name,
                                   CompositeComponent parent,
                                   Connector connector,
                                   Map<String, Document> propertyValues) {
         super(name, parent, connector, propertyValues);
-        this.uri = uri;
     }
 
     /**
-     * Constructor specifying name and URI.
+     * Constructor specifying if the composite is a system composite
      *
      * @param name            the name of this Component
-     * @param uri             the unique identifier for this component
      * @param parent          this component's parent
      * @param connector       the connector to use for wires
-     * @param propertyValues  this composite's Property values
      * @param systemComposite true if the composite is a system composite
      */
-    public CompositeComponentImpl(String name,
-                                  String uri,
+    public CompositeComponentImpl(URI name,
                                   CompositeComponent parent,
                                   Connector connector,
-                                  Map<String, Document> propertyValues,
                                   boolean systemComposite) {
-        super(name, parent, connector, propertyValues);
-        this.uri = uri;
+        super(name, parent, connector, null);
         this.systemComposite = systemComposite;
-    }
-
-    public String getURI() {
-        return uri;
     }
 
     public boolean isSystem() {

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=502853&r1=502852&r2=502853
==============================================================================
--- 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 Fri Feb  2 19:16:15 2007
@@ -30,7 +30,6 @@
 
 import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 
-import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.CompositeClassLoader;
@@ -144,7 +143,6 @@
 
     protected void resolveWires(CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite)
         throws InvalidWireException {
-        QualifiedName sourceName;
         ComponentDefinition componentDefinition;
         ServiceDefinition serviceDefinition;
         List<WireDefinition> wireDefns = composite.getDeclaredWires();
@@ -153,25 +151,29 @@
             // validate the target before finding the source
             validateTarget(targetUri, composite);
 
-            sourceName = new QualifiedName(wire.getSource().getPath());
-            serviceDefinition = composite.getDeclaredServices().get(sourceName.getPartName());
+            String sourceName = wire.getSource().getPath(); //new QualifiedName(wire.getSource().getPath());
+            serviceDefinition = composite.getDeclaredServices().get(sourceName);
             if (serviceDefinition != null) {
                 serviceDefinition.setTarget(wire.getTarget());
             } else {
-                componentDefinition = composite.getDeclaredComponents().get(sourceName.getPartName());
+                componentDefinition = composite.getDeclaredComponents().get(sourceName);
                 if (componentDefinition != null) {
-                    ReferenceTarget referenceTarget = createReferenceTarget(sourceName.getPortName(),
+                    if (wire.getSource().getFragment() == null) {
+                        throw new InvalidWireException("Source reference not specified", sourceName);
+                    }
+                    URI referenceName = URI.create(wire.getSource().getFragment());
+                    ReferenceTarget referenceTarget = createReferenceTarget(referenceName,
                         targetUri,
                         componentDefinition);
                     componentDefinition.add(referenceTarget);
                 } else {
-                    throw new InvalidWireException("Source not found", sourceName.toString());
+                    throw new InvalidWireException("Source not found", sourceName);
                 }
             }
         }
     }
 
-    private ReferenceTarget createReferenceTarget(String componentReferenceName,
+    private ReferenceTarget createReferenceTarget(URI componentReferenceName,
                                                   URI target,
                                                   ComponentDefinition componentDefn) throws InvalidWireException {
         ComponentType componentType = componentDefn.getImplementation().getComponentType();
@@ -182,7 +184,7 @@
             } else {
                 Map references = componentType.getReferences();
                 ReferenceDefinition definition = (ReferenceDefinition) references.values().iterator().next();
-                componentReferenceName = definition.getName();
+                componentReferenceName = definition.getUri();
             }
         }
 
@@ -198,7 +200,8 @@
         // check if all of the composite services have been wired
         for (ServiceDefinition svcDefn : composite.getDeclaredServices().values()) {
             if (svcDefn.getTarget() == null) {
-                throw new InvalidServiceException("Composite service not wired to a target", svcDefn.getName());
+                String identifier = svcDefn.getUri().toString();
+                throw new InvalidServiceException("Composite service not wired to a target", identifier);
             }
         }
     }
@@ -206,26 +209,26 @@
     private void validateTarget(URI target,
                                 CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite)
         throws InvalidWireException {
-        QualifiedName targetName = new QualifiedName(target.getPath());
         // if target is not a reference of the composite
-        if (composite.getReferences().get(targetName.getPartName()) == null) {
-            ComponentDefinition<?> targetDefinition = composite.getDeclaredComponents().get(targetName.getPartName());
+        String targetName = target.getPath();
+        if (composite.getReferences().get(targetName) == null) {
+            ComponentDefinition<?> targetDefinition = composite.getDeclaredComponents().get(targetName);
             // if a target component exists in this composite
             if (targetDefinition != null) {
                 Implementation<?> implementation = targetDefinition.getImplementation();
                 ComponentType<?, ?, ?> componentType = implementation.getComponentType();
                 Map<String, ? extends ServiceDefinition> services = componentType.getServices();
-                if (targetName.getPortName() == null) {
+                if (target.getFragment() == null) {
                     if (services.size() > 1 || services.isEmpty()) {
-                        throw new InvalidWireException("Ambiguous target", targetName.toString());
+                        throw new InvalidWireException("Ambiguous target", target.toString());
                     }
                 } else {
-                    if (services.get(targetName.getPortName()) == null) {
-                        throw new InvalidWireException("Invalid target service", targetName.toString());
+                    if (services.get(target.getFragment()) == null) {
+                        throw new InvalidWireException("Invalid target service", target.toString());
                     }
                 }
             } else {
-                throw new InvalidWireException("Target not found", targetName.toString());
+                throw new InvalidWireException("Target not found", target.toString());
             }
         }
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ReferenceImpl.java Fri Feb  2 19:16:15 2007
@@ -21,6 +21,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.net.URI;
 
 import org.apache.tuscany.spi.component.AbstractSCAObject;
 import org.apache.tuscany.spi.component.CompositeComponent;
@@ -39,11 +40,11 @@
     private List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
     private boolean system;
 
-    public ReferenceImpl(String name, CompositeComponent parent, ServiceContract<?> contract) {
+    public ReferenceImpl(URI name, CompositeComponent parent, ServiceContract<?> contract) {
         this(name, parent, contract, false);
     }
 
-    public ReferenceImpl(String name,
+    public ReferenceImpl(URI name,
                          CompositeComponent parent,
                          ServiceContract<?> contract,
                          boolean system) {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ServiceImpl.java Fri Feb  2 19:16:15 2007
@@ -41,11 +41,11 @@
     private boolean system;
     private URI targetUri;
 
-    public ServiceImpl(String name, CompositeComponent parent, ServiceContract<?> contract) {
+    public ServiceImpl(URI name, CompositeComponent parent, ServiceContract<?> contract) {
         this(name, parent, contract, null, false);
     }
 
-    public ServiceImpl(String name,
+    public ServiceImpl(URI name,
                        CompositeComponent parent,
                        ServiceContract<?> contract,
                        URI targetUri,

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java Fri Feb  2 19:16:15 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import java.net.URI;
+
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 import org.apache.tuscany.spi.builder.Connector;
@@ -53,7 +55,7 @@
                                     DeploymentContext deploymentContext) throws BuilderException {
         SystemCompositeImplementation impl = componentDefinition.getImplementation();
         CompositeComponentType<?, ?, ?> componentType = impl.getComponentType();
-        String name = componentDefinition.getName();
+        URI name = componentDefinition.getName();
         CompositeComponent component = new CompositeComponentImpl(name, parent, connector, true);
         component.setManagementService(managementService);
         build(parent, component, componentType, deploymentContext);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java Fri Feb  2 19:16:15 2007
@@ -18,6 +18,7 @@
  */
 package org.apache.tuscany.core.implementation.composite;
 
+import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -53,7 +54,7 @@
     private Map<String, InboundWire> inboundWires;
     private WireService wireService = new JDKWireService();
 
-    public SystemSingletonAtomicComponent(String name, CompositeComponent parent, Class<S> interfaze, T instance) {
+    public SystemSingletonAtomicComponent(URI name, CompositeComponent parent, Class<S> interfaze, T instance) {
         super(name, parent);
         this.instance = instance;
         inboundWires = new HashMap<String, InboundWire>();
@@ -61,7 +62,7 @@
     }
 
 
-    public SystemSingletonAtomicComponent(String name,
+    public SystemSingletonAtomicComponent(URI name,
                                           CompositeComponent parent,
                                           List<Class<?>> services,
                                           T instance) {
@@ -118,7 +119,7 @@
     }
 
     public void addInboundWire(InboundWire wire) {
-        inboundWires.put(wire.getServiceName(), wire);
+        inboundWires.put(wire.getUri().getFragment(), wire);
     }
 
     public Collection<InboundWire> getInboundWires() {
@@ -152,10 +153,12 @@
 
     private void initWire(Class<?> interfaze) {
         JavaServiceContract serviceContract = new JavaServiceContract(interfaze);
-        ServiceDefinition def = new ServiceDefinition(interfaze.getName(), serviceContract, false);
+        // create a relative URI
+        URI uri = URI.create("#" + interfaze.getName());
+        ServiceDefinition def = new ServiceDefinition(uri, serviceContract, false);
         InboundWire wire = wireService.createWire(def);
         wire.setContainer(this);
-        inboundWires.put(wire.getServiceName(), wire);
+        inboundWires.put(wire.getUri().getFragment(), wire);
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Fri Feb  2 19:16:15 2007
@@ -101,7 +101,7 @@
             Member member = reference.getMember();
             if (member != null) {
                 // could be null if the reference is mapped to a constructor
-                configuration.addReferenceSite(reference.getName(), member);
+                configuration.addReferenceSite(reference.getUri().getFragment(), member);
             }
         }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ContextProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ContextProcessor.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ContextProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ContextProcessor.java Fri Feb  2 19:16:15 2007
@@ -21,8 +21,8 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 
-import org.osoa.sca.RequestContext;
 import org.osoa.sca.ComponentContext;
+import org.osoa.sca.RequestContext;
 import org.osoa.sca.annotations.Context;
 
 import org.apache.tuscany.spi.annotation.Autowire;
@@ -48,12 +48,12 @@
  * @version $Rev$ $Date$
  */
 public class ContextProcessor extends ImplementationProcessorExtension {
-    private WireService wireService;
+    //private WireService wireService;
     private WorkContext workContext;
 
     @Autowire
     public void setWireService(WireService wireService) {
-        this.wireService = wireService;
+        //this.wireService = wireService;
     }
 
     @Autowire

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java Fri Feb  2 19:16:15 2007
@@ -94,7 +94,7 @@
                 } catch (InvalidServiceContractException e) {
                     throw new ProcessingException(e);
                 }
-                type.getServices().put(service.getName(), service);
+                type.getServices().put(service.getUri().getFragment(), service);
             } else if (interfaces.size() == 1) {
                 JavaMappedService service;
                 try {
@@ -102,7 +102,7 @@
                 } catch (InvalidServiceContractException e) {
                     throw new ProcessingException(e);
                 }
-                type.getServices().put(service.getName(), service);
+                type.getServices().put(service.getUri().getFragment(), service);
             }
         }
         Set<Method> methods = getAllUniquePublicProtectedMethods(clazz);
@@ -250,12 +250,12 @@
             for (int i = 0; i < params.length; i++) {
                 Class param = params[i];
                 implService.processParam(param,
-                                         constructor.getGenericParameterTypes()[i],
-                                         annotations[i],
-                                         new String[0],
-                                         i,
-                                         type,
-                                         paramNames);
+                    constructor.getGenericParameterTypes()[i],
+                    annotations[i],
+                    new String[0],
+                    i,
+                    type,
+                    paramNames);
             }
         } else {
             if (!implService.areUnique(params)) {
@@ -354,7 +354,7 @@
                     throw new AmbiguousConstructorException("Ambiguous property or reference for constructor type",
                         type.getName());
                 }
-                name = reference.getName();
+                name = reference.getUri().getFragment();
                 // do not break since ambiguities must be checked, i.e. more than one prop or ref of the same type
             }
         }
@@ -489,7 +489,7 @@
                 } catch (InvalidServiceContractException e) {
                     throw new ProcessingException(e);
                 }
-                type.getServices().put(service.getName(), service);
+                type.getServices().put(service.getUri().getFragment(), service);
             }
         }
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java Fri Feb  2 19:16:15 2007
@@ -22,6 +22,7 @@
 import java.lang.reflect.Member;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
+import java.net.URI;
 import java.util.Collection;
 import java.util.List;
 import javax.xml.namespace.QName;
@@ -66,7 +67,8 @@
 
     public JavaMappedService createService(Class<?> interfaze) throws InvalidServiceContractException {
         JavaMappedService service = new JavaMappedService();
-        service.setName(interfaze.getName());
+        // create a relative URI
+        service.setUri(URI.create("#" + interfaze.getName()));
         service.setRemotable(interfaze.getAnnotation(Remotable.class) != null);
         ServiceContract<?> contract = registry.introspect(interfaze);
         service.setServiceContract(contract);
@@ -149,7 +151,7 @@
     public JavaMappedReference createReference(String name, Member member, Class<?> paramType)
         throws ProcessingException {
         JavaMappedReference reference = new JavaMappedReference();
-        reference.setName(name);
+        reference.setUri(URI.create("#" + name));
         reference.setMember(member);
         reference.setRequired(false);
         ServiceContract contract;
@@ -238,7 +240,7 @@
             throw new InvalidConstructorException("Name specified by @Constructor does not match autowire name",
                 paramNum);
         }
-        reference.setName(name);
+        reference.setUri(URI.create("#" + name));
         boolean required = autowireAnnot.required();
         reference.setRequired(required);
         try {
@@ -368,7 +370,7 @@
         if (type.getReferences().get(name) != null) {
             throw new DuplicateReferenceException(name);
         }
-        reference.setName(name);
+        reference.setUri(URI.create("#" + name));
         boolean required = refAnnotation.required();
         reference.setRequired(required);
         try {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java Fri Feb  2 19:16:15 2007
@@ -21,6 +21,7 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
+import java.net.URI;
 import java.util.Collection;
 
 import org.osoa.sca.annotations.Reference;
@@ -95,7 +96,7 @@
         reference.setMember(method);
         reference.setAutowire(isAutowire);
         reference.setRequired(required);
-        reference.setName(name);
+        reference.setUri(URI.create("#" + name));
         ServiceContract contract;
         try {
             Class<?> rawType = method.getParameterTypes()[0];
@@ -148,7 +149,7 @@
         reference.setMember(field);
         reference.setRequired(required);
         reference.setAutowire(autowire);
-        reference.setName(name);
+        reference.setUri(URI.create("#" + name));
         ServiceContract contract;
         try {
             Class<?> rawType = field.getType();

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java Fri Feb  2 19:16:15 2007
@@ -30,12 +30,12 @@
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.idl.InvalidServiceContractException;
 import org.apache.tuscany.spi.implementation.java.ImplementationProcessorExtension;
+import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
 import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
 import org.apache.tuscany.spi.implementation.java.JavaMappedService;
 import org.apache.tuscany.spi.implementation.java.PojoComponentType;
 import org.apache.tuscany.spi.implementation.java.ProcessingException;
-import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.model.ServiceContract;
 
 import static org.apache.tuscany.core.util.JavaIntrospectionHelper.getAllInterfaces;
@@ -70,7 +70,7 @@
                     } catch (InvalidServiceContractException e) {
                         throw new ProcessingException(e);
                     }
-                    type.getServices().put(service.getName(), service);
+                    type.getServices().put(service.getUri().getFragment(), service);
                 }
             }
             return;
@@ -95,7 +95,7 @@
             } catch (InvalidServiceContractException e) {
                 throw new ProcessingException(e);
             }
-            type.getServices().put(service.getName(), service);
+            type.getServices().put(service.getUri().getFragment(), service);
         }
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java Fri Feb  2 19:16:15 2007
@@ -96,7 +96,7 @@
             Member member = reference.getMember();
             if (member != null) {
                 // could be null if the reference is mapped to a constructor
-                configuration.addReferenceSite(reference.getName(), member);
+                configuration.addReferenceSite(reference.getUri().getFragment(), member);
             }
         }
 

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=502853&r1=502852&r2=502853
==============================================================================
--- 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 Fri Feb  2 19:16:15 2007
@@ -18,30 +18,30 @@
  */
 package org.apache.tuscany.core.loader;
 
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
-
 import java.lang.reflect.Type;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Map;
-
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.ParserConfigurationException;
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
-import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
-import org.apache.tuscany.core.property.SimplePropertyObjectFactory;
+import org.w3c.dom.Document;
+import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
+import org.osoa.sca.annotations.Constructor;
+
 import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.databinding.extension.DOMHelper;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.LoaderExtension;
+import org.apache.tuscany.spi.loader.IllegalSCDLNameException;
 import org.apache.tuscany.spi.loader.InvalidReferenceException;
 import org.apache.tuscany.spi.loader.InvalidValueException;
 import org.apache.tuscany.spi.loader.LoaderException;
@@ -70,8 +70,10 @@
 import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 import org.apache.tuscany.spi.util.stax.StaxUtil;
-import org.osoa.sca.annotations.Constructor;
-import org.w3c.dom.Document;
+
+import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
+import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+import org.apache.tuscany.core.property.SimplePropertyObjectFactory;
 
 /**
  * Loads a component definition from an XML-based assembly file
@@ -112,8 +114,14 @@
             Implementation<?> impl = loadImplementation(parent, reader, deploymentContext);
             registry.loadComponentType(parent, impl, deploymentContext);
 
+            URI uri;
+            try {
+                uri = new URI(parent.getUri().toString() + "/" + name);
+            } catch (URISyntaxException e) {
+                throw new IllegalSCDLNameException(e);
+            }
             ComponentDefinition<Implementation<?>> componentDefinition =
-                new ComponentDefinition<Implementation<?>>(name, impl);
+                new ComponentDefinition<Implementation<?>>(uri, impl);
 
             if (initLevel != null) {
                 if (initLevel.length() == 0) {
@@ -153,7 +161,9 @@
                             for (ReferenceDefinition ref : type.getReferences().values()) {
                                 if (ref.isAutowire()) {
                                     ReferenceTarget referenceTarget = new ReferenceTarget();
-                                    referenceTarget.setReferenceName(ref.getName());
+                                    String compName = componentDefinition.getName().toString();
+                                    URI refName = URI.create(compName + ref.getUri().toString());
+                                    referenceTarget.setReferenceName(refName);
                                     componentDefinition.add(referenceTarget);
                                 }
                             }
@@ -224,13 +234,22 @@
         String name = reader.getAttributeValue(null, "name");
         String text = reader.getElementText();
         String target = text != null ? text.trim() : null;
-
-
         if (name == null) {
             throw new InvalidReferenceException("No name specified");
         } else if (target == null) {
             throw new InvalidReferenceException("No target specified", name);
         }
+        URI targetURI;
+        QualifiedName qName = new QualifiedName(target);
+        try {
+            if (qName.getPortName() == null) {
+                targetURI = new URI(qName.getPartName());
+            } else {
+                targetURI = new URI(qName.getPartName() + "#" + qName.getPartName());
+            }
+        } catch (URISyntaxException e) {
+            throw new InvalidReferenceException("Illegal URI", name, e);
+        }
         Implementation<?> impl = componentDefinition.getImplementation();
         ComponentType<?, ?, ?> componentType = impl.getComponentType();
         if (!componentType.getReferences().containsKey(name)) {
@@ -240,34 +259,26 @@
             ReferenceDefinition definition = componentType.getReferences().get(name);
             if (definition.getBindings().isEmpty()) {
                 // TODO JFM allow selection of a default binding
-                try {
-                    LocalBindingDefinition binding = new LocalBindingDefinition(new URI(target));
-                    definition.addBinding(binding);
-                } catch (URISyntaxException e) {
-                    throw new InvalidReferenceException(e);
-                }
+                LocalBindingDefinition binding = new LocalBindingDefinition(targetURI);
+                definition.addBinding(binding);
             } else {
                 for (BindingDefinition binding : definition.getBindings()) {
-                    try {
-                        // FIXME this is bad - clarify in the spec how URIs are overriden
-                        binding.setTargetUri(new URI(target));
-                    } catch (URISyntaxException e) {
-                        throw new LoaderException(e);
-                    }
+                    // FIXME this is bad - clarify in the spec how URIs are overriden
+                    binding.setTargetUri(targetURI);
                 }
             }
         } else {
             ReferenceTarget referenceTarget = componentDefinition.getReferenceTargets().get(name);
             if (referenceTarget == null) {
                 referenceTarget = new ReferenceTarget();
-                referenceTarget.setReferenceName(name);
+                try {
+                    referenceTarget.setReferenceName(new URI(componentDefinition.getName() + "#" + name));
+                } catch (URISyntaxException e) {
+                    throw new IllegalSCDLNameException(e);
+                }
                 componentDefinition.add(referenceTarget);
             }
-            try {
-                referenceTarget.addTarget(new URI(target));
-            } catch (URISyntaxException e) {
-                throw new InvalidReferenceException(e);
-            }
+            referenceTarget.addTarget(targetURI);
         }
     }
 
@@ -310,7 +321,7 @@
             if (referenceDef.isAutowire() || !referenceDef.isRequired()) {
                 continue;
             }
-            String name = referenceDef.getName();
+            String name = referenceDef.getUri().getFragment();
             ReferenceTarget target = definition.getReferenceTargets().get(name);
             if (target == null) {
                 throw new MissingReferenceException(name);

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=502853&r1=502852&r2=502853
==============================================================================
--- 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 Fri Feb  2 19:16:15 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.loader;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import javax.xml.namespace.QName;
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
@@ -31,6 +33,7 @@
 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.IllegalSCDLNameException;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.UnrecognizedElementException;
@@ -68,7 +71,11 @@
         Multiplicity multiplicity = StaxUtil.multiplicity(multiplicityVal, Multiplicity.ONE_ONE);
         ReferenceDefinition referenceDefinition = new ReferenceDefinition();
         referenceDefinition.setMultiplicity(multiplicity);
-        referenceDefinition.setName(name);
+        try {
+            referenceDefinition.setUri(new URI(parent.getUri().toString() + "#" + name));
+        } catch (URISyntaxException e) {
+            throw new IllegalSCDLNameException(e);
+        }
         while (true) {
             switch (reader.next()) {
                 case START_ELEMENT:

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java Fri Feb  2 19:16:15 2007
@@ -29,11 +29,12 @@
 import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 import org.osoa.sca.annotations.Constructor;
 
+import org.apache.tuscany.spi.QualifiedName;
 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.InvalidReferenceException;
+import org.apache.tuscany.spi.loader.IllegalSCDLNameException;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.UnrecognizedElementException;
@@ -66,9 +67,13 @@
                                   DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
         assert SERVICE.equals(reader.getName());
         String name = reader.getAttributeValue(null, "name");
-        String target = null;
+        URI targetUri = null;
         ServiceDefinition def = new ServiceDefinition();
-        def.setName(name);
+        try {
+            def.setUri(new URI(parent.getUri().toString() + "#" + name));
+        } catch (URISyntaxException e) {
+            throw new IllegalSCDLNameException(e);
+        }
         while (true) {
             int i = reader.next();
             switch (i) {
@@ -76,7 +81,17 @@
                     // there is a reference already using this qname which doesn't seem appropriate.
                     if (REFERENCE.equals(reader.getName())) {
                         String text = reader.getElementText();
-                        target = text != null ? text.trim() : null;
+                        String target = text != null ? text.trim() : null;
+                        QualifiedName qName = new QualifiedName(target);
+                        try {
+                            if (qName.getPortName() == null) {
+                                targetUri = new URI(target);
+                            } else {
+                                targetUri = new URI(qName.getPartName() + "#" + qName.getPortName());
+                            }
+                        } catch (URISyntaxException e) {
+                            throw new IllegalSCDLNameException(e);
+                        }
                     } else {
                         ModelObject o = registry.load(parent, null, reader, deploymentContext);
                         if (o instanceof ServiceContract) {
@@ -90,12 +105,8 @@
                     break;
                 case END_ELEMENT:
                     if (SERVICE.equals(reader.getName())) {
-                        if (target != null) {
-                            try {
-                                def.setTarget(new URI(target));
-                            } catch (URISyntaxException e) {
-                                throw new InvalidReferenceException(target, name);
-                            }
+                        if (targetUri != null) {
+                            def.setTarget(targetUri);
                         }
                         return def;
                     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/WireLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/WireLoader.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/WireLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/WireLoader.java Fri Feb  2 19:16:15 2007
@@ -29,6 +29,7 @@
 import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 import org.osoa.sca.annotations.Constructor;
 
+import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -49,7 +50,7 @@
     private static final QName SOURCE_URI = new QName(XML_NAMESPACE_1_0, "source.uri");
     private static final QName TARGET_URI = new QName(XML_NAMESPACE_1_0, "target.uri");
 
-    @Constructor({"registry"})
+    @Constructor
     public WireLoader(@Autowire LoaderRegistry registry) {
         super(registry);
     }
@@ -74,14 +75,24 @@
                         if (reader.getName().equals(SOURCE_URI)) {
                             uriString = reader.getElementText();
                             if (uriString != null && uriString.trim().length() > 0) {
-                                sourceURI = new URI(uriString);
+                                QualifiedName name = new QualifiedName(uriString);
+                                if (name.getPortName() == null) {
+                                    sourceURI = new URI(uriString);
+                                } else {
+                                    sourceURI = new URI(name.getPartName() + "#" + name.getPortName());
+                                }
                             } else {
                                 throw new InvalidWireException("Wire source not defined");
                             }
                         } else if (reader.getName().equals(TARGET_URI)) {
                             uriString = reader.getElementText();
                             if (uriString != null && uriString.trim().length() > 0) {
-                                targetURI = new URI(uriString);
+                                QualifiedName name = new QualifiedName(uriString);
+                                if (name.getPortName() == null) {
+                                    targetURI = new URI(uriString);
+                                } else {
+                                    targetURI = new URI(name.getPartName() + "#" + name.getPortName());
+                                }
                             } else {
                                 throw new InvalidWireException("Wire target not defined");
                             }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Fri Feb  2 19:16:15 2007
@@ -19,12 +19,15 @@
 package org.apache.tuscany.core.runtime;
 
 import java.net.URL;
+import java.net.URI;
 import javax.xml.stream.XMLInputFactory;
 
 import org.apache.tuscany.core.bootstrap.Bootstrapper;
 import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
 import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
 import org.apache.tuscany.core.monitor.NullMonitorFactory;
+import org.apache.tuscany.core.component.ComponentManager;
+import org.apache.tuscany.core.component.ComponentManagerImpl;
 import org.apache.tuscany.host.MonitorFactory;
 import org.apache.tuscany.host.RuntimeInfo;
 import org.apache.tuscany.host.management.ManagementService;
@@ -58,6 +61,7 @@
     private RuntimeInfo runtimeInfo;
     private MonitorFactory monitorFactory;
     private ManagementService<?> managementService;
+    private ComponentManager componentManager;
 
     private RuntimeComponent runtime;
     private CompositeComponent systemComponent;
@@ -169,6 +173,12 @@
 
         systemComponent = runtime.getSystemComponent();
         registerSystemComponents();
+        try {
+            componentManager.register(systemComponent);
+            componentManager.register(runtime.getRootComponent());
+        } catch (ComponentRegistrationException e) {
+            throw new InitializationException(e);
+        }
         systemComponent.start();
 
         // deploy the system scdl
@@ -211,13 +221,15 @@
 
     protected Bootstrapper createBootstrapper() {
         TuscanyManagementService tms = (TuscanyManagementService) getManagementService();
-        return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, tms);
+        componentManager = new ComponentManagerImpl(tms);
+        return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager, tms);
     }
 
     protected void registerSystemComponents() throws InitializationException {
         try {
             systemComponent.registerJavaObject(RuntimeInfo.COMPONENT_NAME, RuntimeInfo.class, runtimeInfo);
             systemComponent.registerJavaObject("MonitorFactory", MonitorFactory.class, getMonitorFactory());
+            systemComponent.registerJavaObject("ComponentManager", ComponentManager.class, componentManager);
         } catch (ComponentRegistrationException e) {
             throw new InitializationException(e);
         }
@@ -249,7 +261,7 @@
 
     protected CompositeComponent deploySystemScdl(Deployer deployer,
                                                   CompositeComponent parent,
-                                                  String name,
+                                                  URI name,
                                                   URL systemScdl,
                                                   ClassLoader systemClassLoader)
         throws LoaderException, BuilderException, ComponentException {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java Fri Feb  2 19:16:15 2007
@@ -21,18 +21,22 @@
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 
-import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
 import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.ComponentException;
+import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.CompositeClassLoader;
 import org.apache.tuscany.spi.deployer.Deployer;
+import org.apache.tuscany.spi.loader.IllegalSCDLNameException;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.builder.BuilderException;
+
+import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
 
 /**
  * @version $Rev$ $Date$
@@ -51,7 +55,7 @@
         this.parent = parent;
     }
 
-    protected void deployExtension(File file) {
+    protected void deployExtension(File file) throws IllegalSCDLNameException {
         // extension name is file name less any extension
         String name = file.getName();
         int dot = name.lastIndexOf('.');
@@ -69,7 +73,7 @@
         deployExtension(name, url);
     }
 
-    protected void deployExtension(String name, URL url) {
+    protected void deployExtension(String name, URL url) throws IllegalSCDLNameException {
         // FIXME for now, assume this class's ClassLoader is the Tuscany system classloader
         // FIXME we should really use the one associated with the parent composite
         CompositeClassLoader extensionCL = new CompositeClassLoader(getClass().getClassLoader());
@@ -95,15 +99,21 @@
         SystemCompositeImplementation implementation = new SystemCompositeImplementation();
         implementation.setScdlLocation(scdlLocation);
         implementation.setClassLoader(extensionCL);
+        URI uri;
+        try {
+            uri = new URI(parent.getUri().toString() + "/" + name);
+        } catch (URISyntaxException e) {
+            throw new IllegalSCDLNameException(e);
+        }
         ComponentDefinition<SystemCompositeImplementation> definition =
-            new ComponentDefinition<SystemCompositeImplementation>(name, implementation);
+            new ComponentDefinition<SystemCompositeImplementation>(uri, implementation);
 
         // FIXME: [rfeng] Should we reset the thread context class loader here?
         // From the debugger with tomcat, the current TCCL is the RealmClassLoader
         // ClassLoader contextCL = Thread.currentThread().getContextClassLoader();
         try {
             // Thread.currentThread().setContextClassLoader(extensionCL);
-            Component component = null;
+            Component component;
             try {
                 component = deployer.deploy(parent, definition);
                 component.start();

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/store/memory/MemoryStore.java Fri Feb  2 19:16:15 2007
@@ -110,7 +110,7 @@
             store.put(owner, map);
         }
         if (map.containsKey(id)) {
-            throw new DuplicateRecordException(owner.getCanonicalName(), id);
+            throw new DuplicateRecordException(owner.getUri().toString(), id);
         }
         map.put(id, new Record(object, expiration));
     }
@@ -118,11 +118,11 @@
     public void updateRecord(SCAObject owner, String id, Object object, long expiration) throws StoreWriteException {
         Map<String, Record> map = store.get(owner);
         if (map == null) {
-            throw new StoreWriteException("Record not found", owner.getCanonicalName(), id);
+            throw new StoreWriteException("Record not found", owner.getUri().toString(), id);
         }
         Record record = map.get(id);
         if (record == null) {
-            throw new StoreWriteException("Record not found", owner.getCanonicalName(), id);
+            throw new StoreWriteException("Record not found", owner.getUri().toString(), id);
         }
         record.data = object;
     }
@@ -146,10 +146,10 @@
     public void removeRecord(SCAObject owner, String id) throws StoreWriteException {
         Map<String, Record> map = store.get(owner);
         if (map == null) {
-            throw new StoreWriteException("Owner not found", owner.getCanonicalName(), id);
+            throw new StoreWriteException("Owner not found", owner.getUri().toString(), id);
         }
         if (map.remove(id) == null) {
-            throw new StoreWriteException("Owner not found", owner.getCanonicalName(), id);
+            throw new StoreWriteException("Owner not found", owner.getUri().toString(), id);
         }
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java Fri Feb  2 19:16:15 2007
@@ -20,6 +20,7 @@
 
 import java.util.HashMap;
 import java.util.Map;
+import java.net.URI;
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.spi.component.AtomicComponent;
@@ -39,7 +40,7 @@
  */
 public class InboundWireImpl implements InboundWire {
     private QName bindingType = LOCAL_BINDING;
-    private String serviceName;
+    private URI uri;
     private ServiceContract serviceContract;
     private OutboundWire targetWire;
     private String callbackReferenceName;
@@ -89,16 +90,12 @@
         this.serviceContract = serviceContract;
     }
 
-    public void addInterface(Class claz) {
-        throw new UnsupportedOperationException("Additional proxy interfaces not yet supported");
+    public URI getUri() {
+        return uri;
     }
 
-    public String getServiceName() {
-        return serviceName;
-    }
-
-    public void setServiceName(String serviceName) {
-        this.serviceName = serviceName;
+    public void setUri(URI serviceName) {
+        this.uri = serviceName;
     }
 
     public Map<Operation<?>, InboundInvocationChain> getInvocationChains() {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java Fri Feb  2 19:16:15 2007
@@ -20,6 +20,7 @@
 
 import java.util.HashMap;
 import java.util.Map;
+import java.net.URI;
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.spi.QualifiedName;
@@ -44,8 +45,9 @@
     private Map<Operation<?>, OutboundInvocationChain> chains = new HashMap<Operation<?>, OutboundInvocationChain>();
     private Map<Operation<?>, InboundInvocationChain> callbackTargetChains =
         new HashMap<Operation<?>, InboundInvocationChain>();
-    private String referenceName;
+    private URI uri;
     private QualifiedName targetName;
+    private URI target;
     private InboundWire targetWire;
     private SCAObject container;
     private boolean autowire;
@@ -74,14 +76,6 @@
         return bindingType;
     }
 
-    public Object getTargetService() throws TargetResolutionException {
-        if (targetWire == null) {
-            return null;
-        }
-        // optimized, no interceptors or handlers on either end
-        return targetWire.getTargetService();
-    }
-
     public ServiceContract getServiceContract() {
         return serviceContract;
     }
@@ -90,10 +84,6 @@
         this.serviceContract = serviceContract;
     }
 
-    public void addInterface(Class<?> claz) {
-        throw new UnsupportedOperationException("Additional proxy interfaces not yet supported");
-    }
-
     public void setCallbackInterface(Class<?> interfaze) {
         callbackInterfaces = new Class[]{interfaze};
     }
@@ -110,40 +100,12 @@
         return callbackInterfaces;
     }
 
-    public void setTargetWire(InboundWire wire) {
-        this.targetWire = wire;
-    }
-
-    public Map<Operation<?>, OutboundInvocationChain> getInvocationChains() {
-        return chains;
-    }
-
-    public void addInvocationChains(Map<Operation<?>, OutboundInvocationChain> chains) {
-        this.chains.putAll(chains);
-    }
-
-    public void addInvocationChain(Operation<?> operation, OutboundInvocationChain chain) {
-        chains.put(operation, chain);
-    }
-
-    public Map<Operation<?>, InboundInvocationChain> getTargetCallbackInvocationChains() {
-        return callbackTargetChains;
-    }
-
-    public void addTargetCallbackInvocationChains(Map<Operation<?>, InboundInvocationChain> chains) {
-        callbackTargetChains.putAll(chains);
-    }
-
-    public void addTargetCallbackInvocationChain(Operation operation, InboundInvocationChain chain) {
-        callbackTargetChains.put(operation, chain);
-    }
-
-    public String getReferenceName() {
-        return referenceName;
+    public URI getUri() {
+        return uri;
     }
 
-    public void setReferenceName(String referenceName) {
-        this.referenceName = referenceName;
+    public void setUri(URI referenceUri) {
+        this.uri = referenceUri;
     }
 
     public QualifiedName getTargetName() {
@@ -154,6 +116,14 @@
         this.targetName = targetName;
     }
 
+    public URI getTargetUri() {
+        return target;
+    }
+
+    public void setTargetUri(URI target) {
+        this.target = target;
+    }
+
     public boolean isAutowire() {
         return autowire;
     }
@@ -173,4 +143,41 @@
     public void setContainer(SCAObject container) {
         this.container = container;
     }
+
+    public Object getTargetService() throws TargetResolutionException {
+        if (targetWire == null) {
+            return null;
+        }
+        // optimized, no interceptors or handlers on either end
+        return targetWire.getTargetService();
+    }
+
+    public void setTargetWire(InboundWire wire) {
+        this.targetWire = wire;
+    }
+
+    public Map<Operation<?>, OutboundInvocationChain> getInvocationChains() {
+        return chains;
+    }
+
+    public void addInvocationChains(Map<Operation<?>, OutboundInvocationChain> chains) {
+        this.chains.putAll(chains);
+    }
+
+    public void addInvocationChain(Operation<?> operation, OutboundInvocationChain chain) {
+        chains.put(operation, chain);
+    }
+
+    public Map<Operation<?>, InboundInvocationChain> getTargetCallbackInvocationChains() {
+        return callbackTargetChains;
+    }
+
+    public void addTargetCallbackInvocationChains(Map<Operation<?>, InboundInvocationChain> chains) {
+        callbackTargetChains.putAll(chains);
+    }
+
+    public void addTargetCallbackInvocationChain(Operation operation, InboundInvocationChain chain) {
+        callbackTargetChains.put(operation, chain);
+    }
+
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireServiceExtension.java Fri Feb  2 19:16:15 2007
@@ -72,7 +72,7 @@
         InboundWire wire = new InboundWireImpl();
         ServiceContract<?> contract = service.getServiceContract();
         wire.setServiceContract(contract);
-        wire.setServiceName(service.getName());
+        wire.setUri(service.getUri());
         for (Operation<?> operation : contract.getOperations().values()) {
             InboundInvocationChain chain = createInboundChain(operation);
             // TODO handle policy
@@ -97,7 +97,7 @@
         // create outgoing reference wires
         for (ReferenceTarget referenceTarget : definition.getReferenceTargets().values()) {
             Map<String, ? extends ReferenceDefinition> references = componentType.getReferences();
-            ReferenceDefinition mappedReference = references.get(referenceTarget.getReferenceName());
+            ReferenceDefinition mappedReference = references.get(referenceTarget.getReferenceName().getFragment());
             assert mappedReference != null;
             List<OutboundWire> wires = createWire(referenceTarget, mappedReference);
             Multiplicity multiplicity = mappedReference.getMultiplicity();
@@ -121,13 +121,14 @@
         InboundWire inboundWire = new InboundWireImpl(referenceBinding.getBindingType());
         inboundWire.setServiceContract(contract);
         inboundWire.setContainer(referenceBinding);
+        inboundWire.setUri(referenceBinding.getUri());
         for (Operation<?> operation : contract.getOperations().values()) {
             InboundInvocationChain chain = createInboundChain(operation);
             inboundWire.addInvocationChain(operation, chain);
         }
         OutboundWire outboundWire = new OutboundWireImpl(referenceBinding.getBindingType());
         outboundWire.setTargetName(targetName);
-
+        outboundWire.setUri(referenceBinding.getUri());
         // [rfeng] Check if the Reference has the binding contract
         ServiceContract<?> bindingContract = referenceBinding.getBindingServiceContract();
         if (bindingContract == null) {
@@ -171,6 +172,7 @@
         }
         inboundWire.setServiceContract(bindingContract);
         inboundWire.setContainer(serviceBinding);
+        inboundWire.setUri(serviceBinding.getUri());
         for (Operation<?> operation : bindingContract.getOperations().values()) {
             InboundInvocationChain inboundChain = createInboundChain(operation);
             inboundChain.addInterceptor(new SynchronousBridgingInterceptor());
@@ -179,6 +181,7 @@
 
         OutboundWire outboundWire = new OutboundWireImpl(serviceBinding.getBindingType());
         outboundWire.setServiceContract(contract);
+        outboundWire.setUri(serviceBinding.getUri());
         outboundWire.setTargetName(new QualifiedName(targetName));
         outboundWire.setContainer(serviceBinding);
 
@@ -273,7 +276,7 @@
             OutboundWire wire = new OutboundWireImpl();
             wire.setAutowire(true);
             wire.setServiceContract(contract);
-            wire.setReferenceName(target.getReferenceName());
+            wire.setUri(target.getReferenceName());
             for (Operation<?> operation : contract.getOperations().values()) {
                 // TODO handle policy
                 OutboundInvocationChain chain = createOutboundChain(operation);
@@ -295,7 +298,7 @@
                 QualifiedName qName = new QualifiedName(uri.toString());
                 wire.setTargetName(qName);
                 wire.setServiceContract(contract);
-                wire.setReferenceName(target.getReferenceName());
+                wire.setUri(target.getReferenceName());
                 for (Operation<?> operation : contract.getOperations().values()) {
                     // TODO handle policy
                     OutboundInvocationChain chain = createOutboundChain(operation);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java Fri Feb  2 19:16:15 2007
@@ -66,7 +66,7 @@
     public JDKCallbackInvocationHandler(InboundWire wire, WorkContext context) {
         this.context = context;
         this.wire = wire;
-        this.serviceName = wire.getServiceName();
+        this.serviceName = wire.getUri().getFragment();
     }
 
     @SuppressWarnings({"unchecked"})

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandler.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundInvocationHandler.java Fri Feb  2 19:16:15 2007
@@ -70,8 +70,9 @@
     }
 
     public JDKInboundInvocationHandler(Class<?> interfaze, InboundWire wire, WorkContext context) {
+        assert wire.getUri() != null;
         this.context = context;
-        this.serviceName = wire.getServiceName();
+        this.serviceName = wire.getUri().getFragment();
         this.interfaze = interfaze;
         init(interfaze, wire);
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandler.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundInvocationHandler.java Fri Feb  2 19:16:15 2007
@@ -214,7 +214,7 @@
     private void init(Class<?> interfaze, OutboundWire wire, Map<Method, OutboundChainHolder> mapping)
         throws NoMethodForOperationException {
         ServiceContract contract = wire.getServiceContract();
-        this.referenceName = wire.getReferenceName();
+        this.referenceName = wire.getUri().getFragment();
         SCAObject wireContainer = wire.getContainer();
         this.fromAddress = (wireContainer == null) ? null : wireContainer.getName();
         this.contractIsConversational = contract.getInteractionScope().equals(CONVERSATIONAL);

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalBindingBuilderTestCase.java Fri Feb  2 19:16:15 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.binding.local;
 
+import java.net.URI;
+
 import org.apache.tuscany.spi.component.ServiceBinding;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 
@@ -31,7 +33,7 @@
     public void testBuild() throws Exception {
         LocalBindingBuilder builder = new LocalBindingBuilder();
         ServiceDefinition def = new ServiceDefinition();
-        def.setName("foo");
+        def.setUri(new URI("#foo"));
         ServiceBinding binding = builder.build(null, def, null, null);
         assertEquals(LocalServiceBinding.class, binding.getClass());
     }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/binding/local/LocalTargetInvokerTestCase.java Fri Feb  2 19:16:15 2007
@@ -18,10 +18,10 @@
  */
 package org.apache.tuscany.core.binding.local;
 
+import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.Message;
@@ -73,11 +73,8 @@
         EasyMock.replay(chain);
         Map<Operation<?>, OutboundInvocationChain> chains = new HashMap<Operation<?>, OutboundInvocationChain>();
         chains.put(operation, chain);
-        SCAObject container = EasyMock.createMock(SCAObject.class);
-        EasyMock.expect(container.getName()).andReturn("foo").atLeastOnce();
-        EasyMock.replay(container);
-        OutboundWire wire = EasyMock.createNiceMock(OutboundWire.class);
-        EasyMock.expect(wire.getContainer()).andReturn(container).atLeastOnce();
+        OutboundWire wire = EasyMock.createMock(OutboundWire.class);
+        EasyMock.expect(wire.getUri()).andReturn(URI.create("foo")).atLeastOnce();
         wire.getInvocationChains();
         EasyMock.expectLastCall().andReturn(chains);
         EasyMock.expect(wire.getServiceContract()).andReturn(contract);

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java?view=diff&rev=502853&r1=502852&r2=502853
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java Fri Feb  2 19:16:15 2007
@@ -37,6 +37,6 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        bootstrapper = new DefaultBootstrapper(new NullMonitorFactory(), null, null);
+        bootstrapper = new DefaultBootstrapper(new NullMonitorFactory(), null, null, null);
     }
 }



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