Author: jmarino
Date: Sun Jan  7 06:13:43 2007
New Revision: 493724

URL: http://svn.apache.org/viewvc?view=rev&rev=493724
Log:
continue refactoring Component and CompositeComponent

Modified:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContext.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContextTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
 Sun Jan  7 06:13:43 2007
@@ -353,12 +353,10 @@
     protected void connect(SCAObject source, OutboundWire sourceWire, 
SCAObject target) throws WiringException {
         assert sourceWire.getTargetName() != null;
         QualifiedName targetName = sourceWire.getTargetName();
-        if (target instanceof AtomicComponent) {
-            connect(source, sourceWire, (AtomicComponent) target);
+        if (target instanceof Component) {
+            connect(source, sourceWire, (Component) target);
         } else if (target instanceof Reference) {
             connect(source, sourceWire, (Reference) target);
-        } else if (target instanceof CompositeComponent) {
-            connect(source, sourceWire, (CompositeComponent) target);
         } else if (target instanceof Service) {
             connect(source, sourceWire, (Service) target);
         } else if (target == null) {
@@ -380,26 +378,6 @@
         }
     }
 
-    protected void connect(SCAObject source, OutboundWire sourceWire, 
AtomicComponent target)
-        throws WiringException {
-        assert sourceWire.getTargetName() != null;
-        QualifiedName targetName = sourceWire.getTargetName();
-
-        InboundWire targetWire = 
target.getInboundWire(targetName.getPortName());
-        if (targetWire == null) {
-            String sourceName = sourceWire.getContainer().getName();
-            String sourceReference = sourceWire.getReferenceName();
-            throw new TargetServiceNotFoundException("Target service not 
found",
-                sourceName,
-                sourceReference,
-                targetName.getPartName(),
-                targetName.getPortName());
-        }
-        checkIfWireable(sourceWire, targetWire);
-        boolean optimizable = isOptimizable(source.getScope(), 
target.getScope());
-        connect(sourceWire, targetWire, optimizable);
-    }
-
     protected void connect(SCAObject source, OutboundWire sourceWire, 
Reference target) throws WiringException {
         assert sourceWire.getTargetName() != null;
         QualifiedName targetName = sourceWire.getTargetName();
@@ -442,28 +420,29 @@
         connect(sourceWire, targetWire, optimizable);
     }
 
-    protected void connect(SCAObject source, OutboundWire sourceWire, 
CompositeComponent target)
+    protected void connect(SCAObject source, OutboundWire sourceWire, 
Component target)
         throws WiringException {
         assert sourceWire.getTargetName() != null;
         QualifiedName targetName = sourceWire.getTargetName();
         InboundWire targetWire;
-        // target is a composite service, connect to it
-        if (source.isSystem()) {
-            targetWire = target.getInboundSystemWire(targetName.getPortName());
+        // FIXME JFM should we move getInboundSystemWire up to Component?
+        if (target instanceof CompositeComponent && source.isSystem()) {
+            targetWire = ((CompositeComponent) 
target).getInboundSystemWire(targetName.getPortName());
         } else {
             targetWire = target.getInboundWire(targetName.getPortName());
         }
         if (targetWire == null) {
             String sourceName = sourceWire.getContainer().getName();
             String sourceReference = sourceWire.getReferenceName();
-            throw new TargetServiceNotFoundException("Target service does not 
exist or is not configured with a " 
+            throw new TargetServiceNotFoundException("Target service does not 
exist or is not configured with a "
                 + "local binding",
                 sourceName,
                 sourceReference,
                 targetName.getPartName(),
                 targetName.getPortName());
         }
-        boolean optimizable = isOptimizable(source.getScope(), Scope.SYSTEM);
+        checkIfWireable(sourceWire, targetWire);
+        boolean optimizable = isOptimizable(source.getScope(), 
target.getScope());
         connect(sourceWire, targetWire, optimizable);
     }
 

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContext.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContext.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContext.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContext.java
 Sun Jan  7 06:13:43 2007
@@ -58,10 +58,13 @@
     }
 
     public <T> T locateService(Class<T> serviceInterface, String serviceName) 
throws ServiceRuntimeException {
-        String name = serviceInterface.getName();
         QualifiedName qName = new QualifiedName(serviceName);
+        if (qName.getPortName() == null) {
+            String name = serviceInterface.getName();
+            qName = new QualifiedName(qName.getPartName(), name);
+        }
         SCAObject child = composite.getChild(qName.getPartName());
-        InboundWire wire = getInboundWire(child, name, qName.getPortName());
+        InboundWire wire = getInboundWire(child, qName);
         if (wire.isOptimizable()
             && wire.getServiceContract().getInterfaceClass() != null
             && 
serviceInterface.isAssignableFrom(wire.getServiceContract().getInterfaceClass()))
 {
@@ -74,12 +77,11 @@
         return wireService.createProxy(serviceInterface, wire);
     }
 
-    protected InboundWire getInboundWire(SCAObject child, String name, String 
serviceName) {
+    protected InboundWire getInboundWire(SCAObject child, QualifiedName qName) 
{
         InboundWire wire = null;
         if (child instanceof Component) {
-            wire = ((Component) child).getInboundWire(name);
+            wire = ((Component) child).getInboundWire(qName.getPortName());
             if (wire == null) {
-                String qName = serviceName + QualifiedName.NAME_SEPARATOR + 
name;
                 throw new ServiceRuntimeException("Service not found [" + 
qName + "]");
             }
         } else if (child instanceof Service) {
@@ -91,7 +93,7 @@
                 }
             }
             if (wire == null) {
-                throw new ServiceRuntimeException("Local binding for service 
not found [" + name + "]");
+                throw new ServiceRuntimeException("Local binding for service 
not found [" + qName + "]");
             }
         } else if (child instanceof Reference) {
             Reference service = (Reference) child;
@@ -102,10 +104,10 @@
                 }
             }
             if (wire == null) {
-                throw new ServiceRuntimeException("Local binding for service 
not found [" + name + "]");
+                throw new ServiceRuntimeException("Local binding for service 
not found [" + qName + "]");
             }
         } else if (child == null) {
-            throw new ServiceRuntimeException("Service not found [" + 
serviceName + "]");
+            throw new ServiceRuntimeException("Service not found [" + qName + 
"]");
         } else {
             throw new ServiceRuntimeException("Invalid service type [" + 
child.getClass().getName() + "]");
         }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
 Sun Jan  7 06:13:43 2007
@@ -49,7 +49,6 @@
  */
 public class SystemSingletonAtomicComponent<S, T extends S> extends 
AbstractComponentExtension
     implements AtomicComponent {
-
     private T instance;
     private Map<String, InboundWire> inboundWires;
     private WireService wireService = new JDKWireService();

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java
 Sun Jan  7 06:13:43 2007
@@ -3,6 +3,7 @@
 import java.util.Collections;
 
 import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.Reference;
@@ -163,6 +164,7 @@
                 return localServiceInboundWire;
             }
         });
+        EasyMock.expect(sibling.getScope()).andReturn(Scope.SYSTEM).anyTimes();
         EasyMock.replay(sibling);
 
         CompositeComponent topComposite = 
EasyMock.createMock(CompositeComponent.class);

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
 Sun Jan  7 06:13:43 2007
@@ -145,6 +145,7 @@
         Service service = createLocalService(compositeTarget);
         ServiceBinding binding = service.getServiceBindings().get(0);
         
EasyMock.expect(compositeTarget.getInboundWire(TARGET_SERVICE)).andReturn(binding.getInboundWire());
+        
EasyMock.expect(compositeTarget.getScope()).andReturn(Scope.SYSTEM).anyTimes();
         EasyMock.replay(compositeTarget);
 
         inboundWire.setContainer(compositeTarget);

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContextTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContextTestCase.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContextTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeContextTestCase.java
 Sun Jan  7 06:13:43 2007
@@ -134,7 +134,7 @@
 
         WireService service = EasyMock.createMock(WireService.class);
         EasyMock.expect(
-            
service.createProxy(EasyMock.eq(AbstractCompositeContextTestCase.FooService.class),
 EasyMock.eq(wire)))
+            service.createProxy(EasyMock.eq(FooService.class), 
EasyMock.eq(wire)))
             .andReturn(new AbstractCompositeContextTestCase.FooService() {
             });
         EasyMock.replay(service);
@@ -224,6 +224,31 @@
         EasyMock.replay(wireService);
         CompositeContextImpl context = new CompositeContextImpl(composite, 
wireService);
         
context.locateService(AbstractCompositeContextTestCase.FooService.class, 
"Foo/Bar");
+        EasyMock.verify(wireService);
+        EasyMock.verify(composite);
+        EasyMock.verify(wire);
+        EasyMock.verify(child);
+    }
+
+    public void testCompositeLocateNoService() throws Exception {
+        InboundWire wire = EasyMock.createMock(InboundWire.class);
+        EasyMock.expect(wire.isOptimizable()).andReturn(false);
+        EasyMock.replay(wire);
+        CompositeComponent child = 
EasyMock.createMock(CompositeComponent.class);
+        
EasyMock.expect(child.getInboundWire(FooService.class.getName())).andReturn(wire);
+        EasyMock.replay(child);
+        CompositeComponent composite = 
EasyMock.createMock(CompositeComponent.class);
+        EasyMock.expect(composite.getChild("Foo")).andReturn(child);
+        EasyMock.replay(composite);
+
+        WireService wireService = EasyMock.createMock(WireService.class);
+        EasyMock.expect(
+            
wireService.createProxy(EasyMock.eq(AbstractCompositeContextTestCase.FooService.class),
 EasyMock.eq(wire)))
+            .andReturn(new AbstractCompositeContextTestCase.FooService() {
+            });
+        EasyMock.replay(wireService);
+        CompositeContextImpl context = new CompositeContextImpl(composite, 
wireService);
+        context.locateService(FooService.class, "Foo");
         EasyMock.verify(wireService);
         EasyMock.verify(composite);
         EasyMock.verify(wire);

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
 Sun Jan  7 06:13:43 2007
@@ -53,12 +53,6 @@
         Assert.assertEquals(Scope.SYSTEM, composite.getScope());
     }
 
-    public void testGetChildren() throws Exception {
-        CompositeComponent composite = new CompositeComponentImpl("parent", 
null, null, null);
-        composite.register(component);
-        Assert.assertEquals(1, composite.getChildren().size());
-    }
-
     public void testReferencesServices() throws Exception {
         CompositeComponent composite = new CompositeComponentImpl("parent", 
null, null, null);
         Service service = EasyMock.createMock(Service.class);

Modified: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/QualifiedName.java
 Sun Jan  7 06:13:43 2007
@@ -44,7 +44,7 @@
         }
         int pos = qualifiedName.indexOf(QualifiedName.NAME_SEPARATOR);
         switch (pos) {
-            case -1:
+            case-1:
                 partName = qualifiedName;
                 break;
             case 0:
@@ -55,6 +55,17 @@
                 break;
         }
         qName = qualifiedName;
+    }
+
+    /**
+     * Constructs a qualified name using the given part/port combination
+     *
+     * @param partName the part name
+     * @param portName the port name
+     */
+    public QualifiedName(String partName, String portName) {
+        this.partName = partName;
+        this.portName = portName;
     }
 
     /**

Modified: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
 Sun Jan  7 06:13:43 2007
@@ -36,7 +36,7 @@
 public interface Component extends SCAObject {
 
     /**
-     * Returns the internal wire associated with the given service name or 
null if not found
+     * Returns the wire associated with the given service name or null if not 
found
      */
     InboundWire getInboundWire(String serviceName);
 

Modified: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
 Sun Jan  7 06:13:43 2007
@@ -18,7 +18,6 @@
  */
 package org.apache.tuscany.spi.component;
 
-import java.util.Collection;
 import java.util.List;
 
 import org.w3c.dom.Document;
@@ -45,7 +44,7 @@
 
     /**
      * Sets the scope container associated with the composite
-     *
+     * TODO move to Component
      * @param scopeContainer the scope container associated with the composite
      */
     void setScopeContainer(ScopeContainer scopeContainer);
@@ -67,6 +66,14 @@
     void register(SCAObject object) throws ComponentRegistrationException;
 
     /**
+     * Returns the internal system wire associated with the given service name 
or null if not found
+     *
+     * @param serviceName the service name
+     * @return the system wire or null if not found
+     */
+    InboundWire getInboundSystemWire(String serviceName);
+    
+    /**
      * Register a simple Java Object as a system component. This is primarily 
intended for use by bootstrap code to
      * create the initial configuration components.
      *
@@ -99,31 +106,6 @@
      * Returns the system child associated with a given name
      */
     SCAObject getSystemChild(String name);
-
-    /**
-     * Returns the children contained by the composite
-     */
-    List<SCAObject> getChildren();
-
-    /**
-     * Returns the system children contained by the composite
-     */
-    List<SCAObject> getSystemChildren();
-
-    /**
-     * Returns the internal system wire associated with the given service name 
or null if not found
-     *
-     * @param serviceName the service name
-     * @return the system wire or null if not found
-     */
-    InboundWire getInboundSystemWire(String serviceName);
-
-    /**
-     * Returns all internal wires for system services contained by this 
composite
-     *
-     * @return all internal wires for system services contained by this 
composite
-     */
-    Collection<InboundWire> getInboundSystemWires();
 
     /**
      * Invoked by child components to return an wire to a target based on 
matching type. Resolved targets may be

Modified: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?view=diff&rev=493724&r1=493723&r2=493724
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
 Sun Jan  7 06:13:43 2007
@@ -20,7 +20,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -131,14 +130,6 @@
         return systemChildren.get(name);
     }
 
-    public List<SCAObject> getSystemChildren() {
-        return Collections.unmodifiableList(new 
ArrayList<SCAObject>(systemChildren.values()));
-    }
-
-    public List<SCAObject> getChildren() {
-        return Collections.unmodifiableList(new 
ArrayList<SCAObject>(children.values()));
-    }
-
     public void register(SCAObject child) throws 
ComponentRegistrationException {
         assert child instanceof Service || child instanceof Reference || child 
instanceof Component;
         if (child.isSystem()) {
@@ -254,18 +245,6 @@
         synchronized (services) {
             List<InboundWire> map = new ArrayList<InboundWire>();
             for (Service service : services) {
-                for (ServiceBinding binding : service.getServiceBindings()) {
-                    map.add(binding.getInboundWire());
-                }
-            }
-            return map;
-        }
-    }
-
-    public Collection<InboundWire> getInboundSystemWires() {
-        synchronized (systemServices) {
-            List<InboundWire> map = new ArrayList<InboundWire>();
-            for (Service service : systemServices) {
                 for (ServiceBinding binding : service.getServiceBindings()) {
                     map.add(binding.getInboundWire());
                 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to