You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/21 07:42:02 UTC

svn commit: r379374 [2/2] - /incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java Mon Feb 20 22:41:58 2006
@@ -16,32 +16,15 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.model.assembly.Aggregate;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.ComponentImplementation;
-import org.apache.tuscany.model.assembly.ConfiguredProperty;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
 import org.apache.tuscany.model.assembly.Module;
 import org.apache.tuscany.model.assembly.ModuleComponent;
 
 /**
- * An implementation of the model object '<em><b>Module Component</b></em>'.
+ * An implementation of ModuleComponent.
  */
-public class ModuleComponentImpl extends org.apache.tuscany.model.assembly.sdo.impl.ModuleComponentImpl implements ModuleComponent {
-    private List<ConfiguredReference> configuredReferences = new ArrayList<ConfiguredReference>();
-    private Map<String, ConfiguredReference> configuredReferencesMap = new HashMap<String, ConfiguredReference>();
-    private List<ConfiguredService> configuredServices = new ArrayList<ConfiguredService>();
-    private Map<String, ConfiguredService> configuredServicesMap = new HashMap<String, ConfiguredService>();
-    private List<ConfiguredProperty> configuredProperties = new ArrayList<ConfiguredProperty>();
-    private Map<String, ConfiguredProperty> configuredPropertiesMap = new HashMap<String, ConfiguredProperty>();
-    private ComponentImplementation configuredImplementation;
+public class ModuleComponentImpl extends ComponentImpl implements ModuleComponent {
+    
+    private String uri;
 
     /**
      * Constructor
@@ -50,114 +33,33 @@
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.Part#getAggregate()
-     */
-    public Aggregate getAggregate() {
-        return (Aggregate) super.getContainer();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getComponentImplementation()
-     */
-    public ComponentImplementation getComponentImplementation() {
-        return configuredImplementation;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#setComponentImplementation(org.apache.tuscany.model.assembly.ComponentImplementation)
+     * @see org.apache.tuscany.model.assembly.ModuleComponent#setModuleImplementation(org.apache.tuscany.model.assembly.Module)
      */
-    public void setComponentImplementation(ComponentImplementation value) {
-        configuredImplementation = value;
+    public void setModuleImplementation(Module module) {
+        checkNotFrozen();
+        super.setComponentImplementation(module);
     }
-
+    
     /**
      * @see org.apache.tuscany.model.assembly.ModuleComponent#getModuleImplementation()
      */
     public Module getModuleImplementation() {
-        return (Module) getComponentImplementation();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ModuleComponent#setModuleImplementation(org.apache.tuscany.model.assembly.Module)
-     */
-    public void setModuleImplementation(Module module) {
-        setComponentImplementation(module);
+        return (Module)super.getComponentImplementation();
     }
 
     /**
      * @see org.apache.tuscany.model.assembly.ModuleComponent#getURI()
      */
     public String getURI() {
-        return super.getUri();
+        return uri;
     }
 
     /**
      * @see org.apache.tuscany.model.assembly.ModuleComponent#setURI(java.lang.String)
      */
     public void setURI(String value) {
-        super.setUri(value);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperties()
-     */
-    public List<ConfiguredProperty> getConfiguredProperties() {
-        return configuredProperties;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperty(java.lang.String)
-     */
-    public ConfiguredProperty getConfiguredProperty(String name) {
-        return configuredPropertiesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredReferences()
-     */
-    public List<ConfiguredReference> getConfiguredReferences() {
-        return configuredReferences;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredReference(java.lang.String)
-     */
-    public ConfiguredReference getConfiguredReference(String name) {
-        return configuredReferencesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredServices()
-     */
-    public List<ConfiguredService> getConfiguredServices() {
-        return configuredServices;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredService(java.lang.String)
-     */
-    public ConfiguredService getConfiguredService(String name) {
-        return configuredServicesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
-     */
-    public void initialize(AssemblyModelContext modelContext) {
-        //FIXME Populate lists and maps
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
-     */
-    public void freeze() {
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
-     */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+        checkNotFrozen();
+        uri=value;
     }
 
-} //ModuleComponentImpl
+}

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java Mon Feb 20 22:41:58 2006
@@ -16,31 +16,12 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Component;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.ExternalService;
 import org.apache.tuscany.model.assembly.ModuleFragment;
-import org.apache.tuscany.model.assembly.Part;
-import org.apache.tuscany.model.assembly.ServiceURI;
-import org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl;
 
 /**
- * An implementation of the model object '<em><b>Module</b></em>'.
+ * An implementation of ModuleFragment.
  */
-public class ModuleFragmentImpl extends ModuleFragmentElementImpl implements ModuleFragment {
-    private Map<String, Component> componentsMap;
-    private Map<String, EntryPoint> entryPointsMap;
-    private Map<String, ExternalService> externalServicesMap;
-    private List<Part> parts;
+public class ModuleFragmentImpl extends AggregateImpl implements ModuleFragment {
 
     /**
      * Constructor
@@ -48,158 +29,4 @@
     protected ModuleFragmentImpl() {
     }
 
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#getName()
-     */
-    public String getName() {
-        return super.getName();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#setName(java.lang.String)
-     */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getComponents()
-     */
-    public List<Component> getComponents() {
-        return super.getComponents();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getComponent(java.lang.String)
-     */
-    public Component getComponent(String name) {
-        return componentsMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoints()
-     */
-    public List<EntryPoint> getEntryPoints() {
-        return super.getEntryPoints();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoint(java.lang.String)
-     */
-    public EntryPoint getEntryPoint(String name) {
-        return entryPointsMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getExternalServices()
-     */
-    public List<ExternalService> getExternalServices() {
-        return super.getExternalServices();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getExternalService(java.lang.String)
-     */
-    public ExternalService getExternalService(String name) {
-        return externalServicesMap.get(name);
-    }
-
-    /**
-     * @return Returns the componentsMap.
-     */
-    protected Map<String, Component> getComponentsMap() {
-        return componentsMap;
-    }
-
-    /**
-     * @return Returns the externalServicesMap.
-     */
-    protected Map<String, ExternalService> getExternalServicesMap() {
-        return externalServicesMap;
-    }
-
-    /**
-     * @return Returns the entryPointsMap.
-     */
-    protected Map<String, EntryPoint> getEntryPointsMap() {
-        return entryPointsMap;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getParts()
-     */
-    public List<Part> getParts() {
-        return parts;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
-     */
-    public ConfiguredService getConfiguredService(ServiceURI address) {
-        String partName = address.getPartName();
-        String serviceName = address.getServiceName();
-        Component component = getComponent(partName);
-        if (component != null) {
-            if (serviceName != null) {
-                return component.getConfiguredService(serviceName);
-            } else {
-                if (!component.getConfiguredServices().isEmpty()) {
-                    return component.getConfiguredServices().get(0);
-                } else {
-                    return null;
-                }
-            }
-
-        } else {
-            ExternalService externalService = getExternalService(partName);
-            if (externalService != null) {
-                return externalService.getConfiguredService();
-            } else {
-                return null;
-            }
-        }
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
-     */
-    public void initialize(AssemblyModelContext modelContext) {
-        // Populate maps of components, entry points and external services
-        componentsMap = new HashMap<String, Component>();
-        for (Iterator<Component> i = getComponents().iterator(); i.hasNext();) {
-            Component component = i.next();
-            componentsMap.put(component.getName(), component);
-            component.initialize(modelContext);
-        }
-        entryPointsMap = new HashMap<String, EntryPoint>();
-        for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
-            EntryPoint entryPoint = i.next();
-            entryPointsMap.put(entryPoint.getName(), entryPoint);
-            entryPoint.initialize(modelContext);
-        }
-        externalServicesMap = new HashMap<String, ExternalService>();
-        for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
-            ExternalService externalService = i.next();
-            externalServicesMap.put(externalService.getName(), externalService);
-            externalService.initialize(modelContext);
-        }
-        parts = new ArrayList<Part>();
-        parts.addAll(getEntryPoints());
-        parts.addAll(getComponents());
-        parts.addAll(getExternalServices());
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
-     */
-    public void freeze() {
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
-     */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
-    }
-
-} //ModuleImpl
+}

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java Mon Feb 20 22:41:58 2006
@@ -17,46 +17,31 @@
 package org.apache.tuscany.model.assembly.impl;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import commonj.sdo.DataObject;
-import commonj.sdo.Property;
-import commonj.sdo.Sequence;
-import org.eclipse.emf.ecore.sdo.EDataObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.osoa.sca.model.ModuleWire;
-import org.osoa.sca.model.ReferenceValues;
-
 import org.apache.tuscany.model.assembly.AssemblyFactory;
 import org.apache.tuscany.model.assembly.AssemblyModelContext;
 import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Component;
 import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
 import org.apache.tuscany.model.assembly.EntryPoint;
 import org.apache.tuscany.model.assembly.ExternalService;
-import org.apache.tuscany.model.assembly.Interface;
 import org.apache.tuscany.model.assembly.Module;
 import org.apache.tuscany.model.assembly.ModuleFragment;
-import org.apache.tuscany.model.assembly.Part;
 import org.apache.tuscany.model.assembly.Reference;
 import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ServiceURI;
+import org.apache.tuscany.model.assembly.ServiceContract;
 
 /**
- * An implementation of the model object '<em><b>Module</b></em>'.
+ * An implementation of Module.
  */
-public class ModuleImpl extends org.apache.tuscany.model.assembly.sdo.impl.ModuleImpl implements Module {
+public class ModuleImpl extends AggregateImpl implements Module {
+    
     private List<ModuleFragment> moduleFragments = new ArrayList<ModuleFragment>();
     private Map<String, ModuleFragment> moduleFragmentsMap;
-    private Map<String, Component> componentsMap;
-    private Map<String, EntryPoint> entryPointsMap;
-    private Map<String, ExternalService> externalServicesMap;
-    private List<Part> parts;
     private ComponentType componentType;
     private Object runtimeConfiguration;
 
@@ -65,96 +50,20 @@
      */
     protected ModuleImpl() {
     }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#getName()
-     */
-    public String getName() {
-        return super.getName();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#setName(java.lang.String)
-     */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getComponents()
-     */
-    public List<Component> getComponents() {
-        return super.getComponents();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getComponent(java.lang.String)
-     */
-    public Component getComponent(String name) {
-        return componentsMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoints()
-     */
-    public List<EntryPoint> getEntryPoints() {
-        return super.getEntryPoints();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoint(java.lang.String)
-     */
-    public EntryPoint getEntryPoint(String name) {
-        return entryPointsMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getExternalServices()
-     */
-    public List<ExternalService> getExternalServices() {
-        return super.getExternalServices();
-    }
-
+    
     /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getExternalService(java.lang.String)
+     * @see org.apache.tuscany.model.assembly.ComponentImplementation#getComponentType()
      */
-    public ExternalService getExternalService(String name) {
-        return externalServicesMap.get(name);
+    public ComponentType getComponentType() {
+        return componentType;
     }
-
+    
     /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getParts()
+     * @see org.apache.tuscany.model.assembly.ComponentImplementation#setComponentType(org.apache.tuscany.model.assembly.ComponentType)
      */
-    public List<Part> getParts() {
-        return parts;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
-     */
-    public ConfiguredService getConfiguredService(ServiceURI address) {
-        String partName = address.getPartName();
-        String serviceName = address.getServiceName();
-        Component component = getComponent(partName);
-        if (component != null) {
-            if (serviceName != null) {
-                return component.getConfiguredService(serviceName);
-            } else {
-                if (!component.getConfiguredServices().isEmpty()) {
-                    return component.getConfiguredServices().get(0);
-                } else {
-                    return null;
-                }
-            }
-
-        } else {
-            ExternalService externalService = getExternalService(partName);
-            if (externalService != null) {
-                return externalService.getConfiguredService();
-            } else {
-                return null;
-            }
-        }
+    public void setComponentType(ComponentType componentType) {
+        checkNotFrozen();
+        this.componentType=componentType;
     }
 
     /**
@@ -168,6 +77,7 @@
      * @see org.apache.tuscany.model.assembly.Module#getModuleFragment(java.lang.String)
      */
     public ModuleFragment getModuleFragment(String name) {
+        checkInitialized();
         return moduleFragmentsMap.get(name);
     }
 
@@ -175,262 +85,227 @@
      * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
      */
     public void initialize(AssemblyModelContext modelContext) {
-        // Populate maps of components, entry points and external services
-        componentsMap = new HashMap<String, Component>();
-        for (Iterator<Component> i = getComponents().iterator(); i.hasNext();) {
-            Component component = i.next();
-            componentsMap.put(component.getName(), component);
-            component.initialize(modelContext);
-        }
-        entryPointsMap = new HashMap<String, EntryPoint>();
-        for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
-            EntryPoint entryPoint = i.next();
-            entryPointsMap.put(entryPoint.getName(), entryPoint);
-            entryPoint.initialize(modelContext);
-        }
-        externalServicesMap = new HashMap<String, ExternalService>();
-        for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
-            ExternalService externalService = i.next();
-            externalServicesMap.put(externalService.getName(), externalService);
-            externalService.initialize(modelContext);
-        }
+        if (isInitialized())
+            return;
+        
+        // Populate map of module fragments
         moduleFragmentsMap = new HashMap<String, ModuleFragment>();
-        for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
-            ModuleFragmentImpl moduleFragment = (ModuleFragmentImpl) i.next();
+        for (ModuleFragment moduleFragment : moduleFragments) {
             moduleFragmentsMap.put(moduleFragment.getName(), moduleFragment);
-            componentsMap.putAll(moduleFragment.getComponentsMap());
-            entryPointsMap.putAll(moduleFragment.getEntryPointsMap());
-            externalServicesMap.putAll(moduleFragment.getExternalServicesMap());
-        }
-        parts = new ArrayList<Part>();
-        parts.addAll(getEntryPoints());
-        parts.addAll(getComponents());
-        parts.addAll(getExternalServices());
+            
+            // Add all components, entry points and external services from the module fragments
+            getComponents().addAll(moduleFragment.getComponents());
+            getEntryPoints().addAll(moduleFragment.getEntryPoints());
+            getExternalServices().addAll(moduleFragment.getExternalServices());
+        }
+        
+        // Initialize the aggregate
+        super.initialize(modelContext);
 
         //FIXME derive the module properties from the overridable properties of the components in the module
 
         // Derive the component type from the entry points and external services in the module
-        if (componentType == null) {
+        if (componentType==null) {
             AssemblyFactory factory = modelContext.getAssemblyFactory();
             componentType = factory.createComponentType();
-            for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
-                EntryPoint entryPoint = i.next();
+            for (EntryPoint entryPoint : getEntryPoints()) {
                 Service service = factory.createService();
                 service.setName(entryPoint.getName());
-                Interface iface = entryPoint.getInterfaceContract();
-                if (iface != null)
-                    service.setInterfaceContract((Interface) EcoreUtil.copy((EDataObject) iface));
+                ServiceContract serviceContract = entryPoint.getConfiguredService().getService().getServiceContract();
+                if (serviceContract != null)
+                    service.setServiceContract(serviceContract);
                 componentType.getServices().add(service);
             }
             for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
                 ExternalService externalService = i.next();
                 Reference reference = factory.createReference();
                 reference.setName(externalService.getName());
-                Interface iface = externalService.getInterfaceContract();
-                if (iface != null)
-                    reference.setInterfaceContract((Interface) EcoreUtil.copy((EDataObject) iface));
+                ServiceContract serviceContract = externalService.getConfiguredService().getService().getServiceContract();
+                if (serviceContract != null)
+                    reference.setServiceContract(serviceContract);
                 componentType.getReferences().add(reference);
             }
-            componentType.initialize(modelContext);
-        }
-
-        // Resolve the references and the wires
-        AssemblyFactory factory = modelContext.getAssemblyFactory();
-
-        // Resolve entry point references
-        for (Iterator<EntryPoint> i = entryPointsMap.values().iterator(); i.hasNext();) {
-            EntryPoint entryPoint = i.next();
-            ConfiguredReference configuredReference = entryPoint.getConfiguredReference();
-            for (Iterator<DataObject> r = ((org.osoa.sca.model.EntryPoint) entryPoint).getReferences().iterator(); r.hasNext();) {
-                DataObject targetURIElement = r.next();
-                ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
-                if (configuredService != null) {
-                    if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getConfiguredServices().isEmpty()) {
-                        // FIXME shouldn't we be throwing an exception here
-                        // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
-                    } else {
-                        configuredReference.getConfiguredServices().add(configuredService);
-                    }
-                }
-            }
-        }
-
-        // Resolve component references
-        for (Iterator<Component> i = componentsMap.values().iterator(); i.hasNext();) {
-            Component component = i.next();
-            ReferenceValues referenceValues = ((org.osoa.sca.model.Component) component).getReferenceValues();
-            if (referenceValues == null)
-                continue;
-            Sequence sequence = referenceValues.getAny();
-            for (int p = 0, n = sequence.size(); p < n; p++) {
-                Property property = sequence.getProperty(p);
-                DataObject targetURIElement = (DataObject) sequence.getValue(p);
-
-                // Get the named reference
-                ConfiguredReference configuredReference = component.getConfiguredReference(property.getName());
-                if (configuredReference != null) {
-                    ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
-                    if (configuredService != null) {
-                        if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getConfiguredServices().isEmpty()) {
-                            // FIXME shouldn't we be throwing an exception here
-                            // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
-                        } else {
-                            configuredReference.getConfiguredServices().add(configuredService);
-                        }
-                    }
-                } else {
-                    // FIXME shouldn't we be throwing an exception here
-                    // log.error("Undefined reference " + property.getName());
-                }
-            }
-        }
-
-        // Resolve wires from this module and its module fragments
-        resolveWires(factory, getWires());
-        for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
-            ModuleFragment moduleFragment = i.next();
-            resolveWires(factory, ((org.osoa.sca.model.ModuleFragment) moduleFragment).getWires());
         }
-    }
+        componentType.initialize(modelContext);
 
-    /**
-     * Resolve a target URI
-     *
-     * @param factory
-     * @param targetURIElement
-     */
-    private ConfiguredService resolveURIElement(AssemblyFactory factory, DataObject targetURIElement) {
-        Sequence sequence = targetURIElement.getSequence(0);
-        String targetURI = (String) sequence.getValue(0);
-        ServiceURI serviceURI = factory.createServiceURI(null, targetURI);
-        ConfiguredService configuredService = getConfiguredService(serviceURI);
-        if (configuredService == null) {
-            // FIXME shouldn't we be throwing an exception here
-            // log.error("Cannot find service for " + targetURI);
-        }
-        return configuredService;
-    }
-
-    /**
-     * Resolve the given wires
-     *
-     * @param factory
-     * @param wires
-     */
-    private void resolveWires(AssemblyFactory factory, List<ModuleWire> wires) {
-
-        // Loop through the wires
-        for (Iterator<ModuleWire> i = wires.iterator(); i.hasNext();) {
-            ModuleWire wire = i.next();
-
-            // Get the source reference
-            ServiceURI sourceURI = factory.createServiceURI(null, wire.getSourceUri());
-            ConfiguredReference configuredReference = null;
-            String partName = sourceURI.getPartName();
-            String referenceName = sourceURI.getServiceName();
-            if (referenceName != null) {
-                Component component = getComponent(partName);
-                if (component != null) {
-                    configuredReference = component.getConfiguredReference(referenceName);
-                }
-            } else {
-                EntryPoint entryPoint = getEntryPoint(partName);
-                if (entryPoint != null) {
-                    configuredReference = entryPoint.getConfiguredReference();
-                }
-            }
-            if (configuredReference == null) {
-                // FIXME shouldn't we be throwing an exception here
-                // log.error("Cannot find wire source " + sourceURI);
-            } else {
-
-                // Resolve the target service endpoint
-                ServiceURI targetURI = factory.createServiceURI(null, wire.getTargetUri());
-                ConfiguredService configuredService = getConfiguredService(targetURI);
-                if (configuredService != null) {
-
-                    // Wire the reference to the target
-                    if (configuredReference.getReference().isMultiplicityN()) {
-                        configuredReference.getConfiguredServices().add(configuredService);
-                    } else {
-                        configuredReference.getConfiguredServices().clear();
-                        configuredReference.getConfiguredServices().add(configuredService);
-                    }
-                } else {
-                    // FIXME shouldn't we be throwing an exception here
-                    // log.error("Cannot find service for " + targetURI.getAddress());
-                }
-            }
-        }
-    }
+        //FIXME add wiring later
+//        
+//        // Resolve the references and the wires
+//        AssemblyFactory factory = modelContext.getAssemblyFactory();
+//
+//        // Resolve entry point references
+//        for (Iterator<EntryPoint> i = entryPointsMap.values().iterator(); i.hasNext();) {
+//            EntryPoint entryPoint = i.next();
+//            ConfiguredReference configuredReference = entryPoint.getConfiguredReference();
+//            for (Iterator<DataObject> r = ((org.osoa.sca.model.EntryPoint) entryPoint).getReferences().iterator(); r.hasNext();) {
+//                DataObject targetURIElement = r.next();
+//                ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
+//                if (configuredService != null) {
+//                    if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getTargetConfiguredServices().isEmpty()) {
+//                        // FIXME shouldn't we be throwing an exception here
+//                        // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
+//                    } else {
+//                        configuredReference.getTargetConfiguredServices().add(configuredService);
+//                    }
+//                }
+//            }
+//        }
+//
+//        // Resolve component references
+//        for (Iterator<Component> i = componentsMap.values().iterator(); i.hasNext();) {
+//            Component component = i.next();
+//            ReferenceValues referenceValues = ((org.osoa.sca.model.Component) component).getReferenceValues();
+//            if (referenceValues == null)
+//                continue;
+//            Sequence sequence = referenceValues.getAny();
+//            for (int p = 0, n = sequence.size(); p < n; p++) {
+//                Property property = sequence.getProperty(p);
+//                DataObject targetURIElement = (DataObject) sequence.getValue(p);
+//
+//                // Get the named reference
+//                ConfiguredReference configuredReference = component.getConfiguredReference(property.getName());
+//                if (configuredReference != null) {
+//                    ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
+//                    if (configuredService != null) {
+//                        if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getTargetConfiguredServices().isEmpty()) {
+//                            // FIXME shouldn't we be throwing an exception here
+//                            // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
+//                        } else {
+//                            configuredReference.getTargetConfiguredServices().add(configuredService);
+//                        }
+//                    }
+//                } else {
+//                    // FIXME shouldn't we be throwing an exception here
+//                    // log.error("Undefined reference " + property.getName());
+//                }
+//            }
+//        }
+//
+//        // Resolve wires from this module and its module fragments
+//        resolveWires(factory, getWires());
+//        for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
+//            ModuleFragment moduleFragment = i.next();
+//            resolveWires(factory, ((org.osoa.sca.model.ModuleFragment) moduleFragment).getWires());
+//        }
+    }
+
+//    /**
+//     * Resolve a target URI
+//     *
+//     * @param factory
+//     * @param targetURIElement
+//     */
+//    private ConfiguredService resolveURIElement(AssemblyFactory factory, DataObject targetURIElement) {
+//        Sequence sequence = targetURIElement.getSequence(0);
+//        String targetURI = (String) sequence.getValue(0);
+//        ServiceURI serviceURI = factory.createServiceURI(null, targetURI);
+//        ConfiguredService configuredService = getConfiguredService(serviceURI);
+//        if (configuredService == null) {
+//            // FIXME shouldn't we be throwing an exception here
+//            // log.error("Cannot find service for " + targetURI);
+//        }
+//        return configuredService;
+//    }
+//
+//    /**
+//     * Resolve the given wires
+//     *
+//     * @param factory
+//     * @param wires
+//     */
+//    private void resolveWires(AssemblyFactory factory, List<ModuleWire> wires) {
+//
+//        // Loop through the wires
+//        for (Iterator<ModuleWire> i = wires.iterator(); i.hasNext();) {
+//            ModuleWire wire = i.next();
+//
+//            // Get the source reference
+//            ServiceURI sourceURI = factory.createServiceURI(null, wire.getSourceUri());
+//            ConfiguredReference configuredReference = null;
+//            String partName = sourceURI.getPartName();
+//            String referenceName = sourceURI.getServiceName();
+//            if (referenceName != null) {
+//                Component component = getComponent(partName);
+//                if (component != null) {
+//                    configuredReference = component.getConfiguredReference(referenceName);
+//                }
+//            } else {
+//                EntryPoint entryPoint = getEntryPoint(partName);
+//                if (entryPoint != null) {
+//                    configuredReference = entryPoint.getConfiguredReference();
+//                }
+//            }
+//            if (configuredReference == null) {
+//                // FIXME shouldn't we be throwing an exception here
+//                // log.error("Cannot find wire source " + sourceURI);
+//            } else {
+//
+//                // Resolve the target service endpoint
+//                ServiceURI targetURI = factory.createServiceURI(null, wire.getTargetUri());
+//                ConfiguredService configuredService = getConfiguredService(targetURI);
+//                if (configuredService != null) {
+//
+//                    // Wire the reference to the target
+//                    if (configuredReference.getReference().isMultiplicityN()) {
+//                        configuredReference.getTargetConfiguredServices().add(configuredService);
+//                    } else {
+//                        configuredReference.getTargetConfiguredServices().clear();
+//                        configuredReference.getTargetConfiguredServices().add(configuredService);
+//                    }
+//                } else {
+//                    // FIXME shouldn't we be throwing an exception here
+//                    // log.error("Cannot find service for " + targetURI.getAddress());
+//                }
+//            }
+//        }
+//    }
 
     /**
      * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
      */
     public void freeze() {
+        if (isFrozen())
+            return;
+        super.freeze();
+        
+        // Freeze component type and module fragments
+        if (componentType!=null)
+            componentType.freeze();
+        moduleFragments=Collections.unmodifiableList(moduleFragments);
+        freeze(moduleFragments);
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
-     */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ConfiguredRuntimeObject#getRuntimeConfiguration()
+     * @see org.apache.tuscany.model.assembly.RuntimeConfigurationHolder#getRuntimeConfiguration()
      */
     public Object getRuntimeConfiguration() {
         return runtimeConfiguration;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.ConfiguredRuntimeObject#setRuntimeConfiguration(java.lang.Object)
+     * @see org.apache.tuscany.model.assembly.RuntimeConfigurationHolder#setRuntimeConfiguration(java.lang.Object)
      */
     public void setRuntimeConfiguration(Object configuration) {
+        checkNotFrozen();
         this.runtimeConfiguration = configuration;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.ComponentType#getProperties()
-     */
-    public List<org.apache.tuscany.model.assembly.Property> getProperties() {
-        return componentType.getProperties();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ComponentType#getProperty(java.lang.String)
-     */
-    public org.apache.tuscany.model.assembly.Property getProperty(String name) {
-        return componentType.getProperty(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ComponentType#getReference(java.lang.String)
+     * @see org.apache.tuscany.model.assembly.impl.AggregateImpl#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
      */
-    public Reference getReference(String name) {
-        return componentType.getReference(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ComponentType#getReferences()
-     */
-    public List<Reference> getReferences() {
-        return componentType.getReferences();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ComponentType#getService(java.lang.String)
-     */
-    public Service getService(String name) {
-        return componentType.getService(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.ComponentType#getServices()
-     */
-    public List<Service> getServices() {
-        return componentType.getServices();
+    public boolean accept(AssemblyModelVisitor visitor) {
+        if (!super.accept(visitor))
+            return false;
+        
+        if (componentType!=null) {
+            if (!componentType.accept(visitor))
+                return false;
+        }
+        
+        if (!accept(moduleFragments, visitor))
+            return false;
+        
+        return true;
     }
-
-} //ModuleImpl
+    
+}

Added: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java?rev=379374&view=auto
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java (added)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java Mon Feb 20 22:41:58 2006
@@ -0,0 +1,106 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.model.assembly.impl;
+
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
+import org.apache.tuscany.model.assembly.Port;
+import org.apache.tuscany.model.assembly.ServiceContract;
+
+/**
+ * An implementation of Port.
+ */
+public abstract class PortImpl extends AssemblyModelObjectImpl implements Port {
+    
+    private ServiceContract serviceContract;
+    private String name;
+
+    /**
+     * Constructor
+     */
+    protected PortImpl() {
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.Port#getName()
+     */
+    public String getName() {
+        return name;
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.Port#setName(java.lang.String)
+     */
+    public void setName(String value) {
+        checkNotFrozen();
+        name=value;
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.Port#getServiceContract()
+     */
+    public ServiceContract getServiceContract() {
+        return serviceContract;
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.Port#setServiceContract(org.apache.tuscany.model.assembly.ServiceContract)
+     */
+    public void setServiceContract(ServiceContract value) {
+        checkNotFrozen();
+        serviceContract=value;
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+     */
+    public void initialize(AssemblyModelContext modelContext) {
+        if (isInitialized())
+            return;
+        super.initialize(modelContext);
+        
+        if (serviceContract!=null)
+            serviceContract.initialize(modelContext);
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#freeze()
+     */
+    public void freeze() {
+        if (isFrozen())
+            return;
+        super.freeze();
+        
+        if (serviceContract!=null)
+            serviceContract.freeze();
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
+     */
+    public boolean accept(AssemblyModelVisitor visitor) {
+        if (!super.accept(visitor))
+            return false;
+        
+        if (serviceContract!=null) {
+            if (!serviceContract.accept(visitor))
+                return false;
+        }
+        
+        return true;
+    }
+}

Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java Mon Feb 20 22:41:58 2006
@@ -16,14 +16,19 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
 import org.apache.tuscany.model.assembly.Property;
 
 /**
- * An implementation of the model object '<em><b>Property</b></em>'.
+ * An implementation of Property.
  */
-public class PropertyImpl extends org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl implements Property {
+public class PropertyImpl extends ExtensibleImpl implements Property {
+    
+    private Object defaultValue; 
+    private String name;
+    private boolean many;
+    private boolean required;
+    private Class type;
+
     /**
      * Constructor
      */
@@ -31,89 +36,77 @@
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#getName()
+     * @see org.apache.tuscany.model.assembly.Property#getDefaultValue()
      */
-    public String getName() {
-        return super.getName();
+    public Object getDefaultValue() {
+        return defaultValue;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setName(java.lang.String)
+     * @see org.apache.tuscany.model.assembly.Property#getName()
      */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#getDefault()
-     */
-    public String getDefault() {
-        return super.getDefault();
+    public String getName() {
+        return name;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setDefault(java.lang.String)
+     * @see org.apache.tuscany.model.assembly.Property#getType()
      */
-    public void setDefault(String newDefault) {
-        super.setDefault(newDefault);
+    public Class getType() {
+        return type;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#isMany()
+     * @see org.apache.tuscany.model.assembly.Property#isMany()
      */
     public boolean isMany() {
-        return super.isMany();
+        return many;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setMany(boolean)
-     */
-    public void setMany(boolean newMany) {
-        super.setMany(newMany);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#isRequired()
+     * @see org.apache.tuscany.model.assembly.Property#isRequired()
      */
     public boolean isRequired() {
-        return super.isRequired();
+        return required;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setRequired(boolean)
+     * @see org.apache.tuscany.model.assembly.Property#setDefaultValue(java.lang.Object)
      */
-    public void setRequired(boolean newRequired) {
-        super.setRequired(newRequired);
+    public void setDefaultValue(Object value) {
+        defaultValue=value;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.Property#getType_()
+     * @see org.apache.tuscany.model.assembly.Property#setMany(boolean)
      */
-    public Object getType_() {
-        return super.getType_();
-    }
-
-    public void setType(Object value) {
-        super.setType(value);
+    public void setMany(boolean value) {
+        checkNotFrozen();
+        many=value;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+     * @see org.apache.tuscany.model.assembly.Property#setName(java.lang.String)
      */
-    public void initialize(AssemblyModelContext modelContext) {
+    public void setName(String value) {
+        checkNotFrozen();
+        name=value;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
+     * @see org.apache.tuscany.model.assembly.Property#setRequired(boolean)
      */
-    public void freeze() {
+    public void setRequired(boolean value) {
+        checkNotFrozen();
+        required=value;
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
+     * @see org.apache.tuscany.model.assembly.Property#setType(java.lang.Class)
      */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+    public void setType(Class value) {
+        checkNotFrozen();
+        type=value;
     }
-
-} //PropertyImpl
+    
+}

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java Mon Feb 20 22:41:58 2006
@@ -16,92 +16,35 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Interface;
+import org.apache.tuscany.model.assembly.Multiplicity;
 import org.apache.tuscany.model.assembly.Reference;
 
 /**
- * An implementation of the model object '<em><b>Reference</b></em>'.
+ * An implementation of Reference.
  */
-public class ReferenceImpl extends org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl implements Reference {
+public class ReferenceImpl extends PortImpl implements Reference {
+    
+    private Multiplicity multiplicity;
+    
     /**
      * Constructor
      */
     protected ReferenceImpl() {
     }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#getName()
-     */
-    public String getName() {
-        return super.getName();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#setName(java.lang.String)
-     */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#getMultiplicity()
-     */
-    public String getMultiplicity() {
-        return super.getMultiplicity();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#setMultiplicity(java.lang.String)
-     */
-    public void setMultiplicity(String newMultiplicity) {
-        super.setMultiplicity(newMultiplicity);
-    }
-
+    
     /**
-     * @see org.apache.tuscany.model.assembly.Reference#isMultiplicityN()
+     * @see org.apache.tuscany.model.assembly.Reference#getMultiplicity()
      */
-    public boolean isMultiplicityN() {
-        String multiplicity = super.getMultiplicity();
-        return "0..n".equals(multiplicity) || "1..n".equals(multiplicity);
+    public Multiplicity getMultiplicity() {
+        return multiplicity;
     }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Port#getInterfaceContract()
-     */
-    public Interface getInterfaceContract() {
-        return (Interface) super.getInterface();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Port#setInterfaceContract(org.apache.tuscany.model.assembly.Interface)
-     */
-    public void setInterfaceContract(Interface value) {
-        super.setInterface((org.osoa.sca.model.Interface) value);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
-     */
-    public void initialize(AssemblyModelContext modelContext) {
-        // Initialize the interface
-        Interface iface = getInterfaceContract();
-        if (iface != null)
-            iface.initialize(modelContext);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
-     */
-    public void freeze() {
-    }
-
+    
     /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
+     * @see org.apache.tuscany.model.assembly.Reference#setMultiplicity(org.apache.tuscany.model.assembly.Multiplicity)
      */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+    public void setMultiplicity(Multiplicity multiplicity) {
+        checkNotFrozen();
+        this.multiplicity=multiplicity;
     }
 
-} //ReferenceImpl
+}

Added: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java?rev=379374&view=auto
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java (added)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java Mon Feb 20 22:41:58 2006
@@ -0,0 +1,81 @@
+/**
+ *
+ *  Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.tuscany.model.assembly.impl;
+
+import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.assembly.ServiceContract;
+
+/**
+ * An implementation of ServiceContract.
+ */
+public class ServiceContractImpl extends ExtensibleImpl implements ServiceContract {
+    
+    private Class interface_;
+    private Class callbackInterface;
+    private Scope scope;
+    
+    /**
+     * Constructor
+     */
+    protected ServiceContractImpl() {
+    }
+
+    /**
+     * @see org.apache.tuscany.model.assembly.ServiceContract#getCallbackInterface()
+     */
+    public Class getCallbackInterface() {
+        return callbackInterface;
+    }
+
+    /**
+     * @see org.apache.tuscany.model.assembly.ServiceContract#getInterface()
+     */
+    public Class getInterface() {
+        return interface_;
+    }
+
+    /**
+     * @see org.apache.tuscany.model.assembly.ServiceContract#getScope()
+     */
+    public Scope getScope() {
+        return scope;
+    }
+
+    /**
+     * @see org.apache.tuscany.model.assembly.ServiceContract#setCallbackInterface(java.lang.Class)
+     */
+    public void setCallbackInterface(Class value) {
+        checkNotFrozen();
+        callbackInterface=value;
+    }
+
+    /**
+     * @see org.apache.tuscany.model.assembly.ServiceContract#setInterface(java.lang.Class)
+     */
+    public void setInterface(Class value) {
+        checkNotFrozen();
+        interface_=value;
+    }
+
+    /**
+     * @see org.apache.tuscany.model.assembly.ServiceContract#setScope(org.apache.tuscany.model.assembly.Scope)
+     */
+    public void setScope(Scope scope) {
+        checkNotFrozen();
+        this.scope=scope;
+    }
+}

Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java Mon Feb 20 22:41:58 2006
@@ -16,69 +16,17 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Interface;
 import org.apache.tuscany.model.assembly.Service;
 
 /**
- * An implementation of the model object '<em><b>Service</b></em>'.
+ * An implementation of Service.
  */
-public class ServiceImpl extends org.apache.tuscany.model.assembly.sdo.impl.ServiceImpl implements Service {
+public class ServiceImpl extends PortImpl implements Service {
+    
     /**
      * Constructor
      */
     protected ServiceImpl() {
     }
 
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ServiceImpl#getName()
-     */
-    public String getName() {
-        return super.getName();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ServiceImpl#setName(java.lang.String)
-     */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Port#getInterfaceContract()
-     */
-    public Interface getInterfaceContract() {
-        return (Interface) getInterface();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Port#setInterfaceContract(org.apache.tuscany.model.assembly.Interface)
-     */
-    public void setInterfaceContract(Interface value) {
-        setInterface((org.osoa.sca.model.Interface) value);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
-     */
-    public void initialize(AssemblyModelContext modelContext) {
-        Interface iface = getInterfaceContract();
-        if (iface != null)
-            iface.initialize(modelContext);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
-     */
-    public void freeze() {
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
-     */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
-    }
-
-} //ServiceImpl
+}

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java Mon Feb 20 22:41:58 2006
@@ -22,11 +22,12 @@
 import org.apache.tuscany.model.assembly.ConfiguredReference;
 import org.apache.tuscany.model.assembly.ConfiguredService;
 import org.apache.tuscany.model.assembly.ModuleComponent;
-import org.apache.tuscany.model.assembly.Part;
+import org.apache.tuscany.model.assembly.AggregatePart;
 import org.apache.tuscany.model.assembly.Service;
 import org.apache.tuscany.model.assembly.ServiceURI;
 
 /**
+ * An implementation of ServiceURI.
  */
 public class ServiceURIImpl implements ServiceURI {
 
@@ -48,29 +49,29 @@
      * Constructor
      *
      * @param moduleComponent
-     * @param portEndpoint
+     * @param configuredPort
      */
-    protected ServiceURIImpl(ModuleComponent moduleComponent, ConfiguredPort portEndpoint) {
+    protected ServiceURIImpl(ModuleComponent moduleComponent, ConfiguredPort configuredPort) {
         if (moduleComponent != null)
             moduleComponentName = moduleComponent.getName();
         else
             moduleComponentName = "";
-        if (portEndpoint instanceof ConfiguredService) {
-            ConfiguredService serviceEndpoint = (ConfiguredService) portEndpoint;
-            partName = serviceEndpoint.getPart().getName();
-            Service service = serviceEndpoint.getService();
+        if (configuredPort instanceof ConfiguredService) {
+            ConfiguredService configuredService = (ConfiguredService) configuredPort;
+            partName = configuredService.getAggregatePart().getName();
+            Service service = configuredService.getService();
             if (service != null) {
-                serviceName = serviceEndpoint.getService().getName();
+                serviceName = configuredService.getService().getName();
                 address = "sca:///" + moduleComponentName + '/' + partName + '/' + serviceName;
             } else {
                 address = "sca:///" + moduleComponentName + '/' + partName;
             }
 
-        } else if (portEndpoint instanceof ConfiguredReference) {
-            ConfiguredReference referenceValue = (ConfiguredReference) portEndpoint;
-            Part part = referenceValue.getPart();
+        } else if (configuredPort instanceof ConfiguredReference) {
+            ConfiguredReference configuredReference = (ConfiguredReference) configuredPort;
+            AggregatePart part = configuredReference.getAggregatePart();
             partName = part.getName();
-            serviceName = "reference." + referenceValue.getReference().getName();
+            serviceName = "reference." + configuredReference.getReference().getName();
             address = "sca:///" + moduleComponentName + '/' + partName + '/' + serviceName;
         }
 

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java Mon Feb 20 22:41:58 2006
@@ -16,40 +16,12 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import commonj.sdo.DataObject;
-import commonj.sdo.Sequence;
-import org.osoa.sca.model.Implementation;
-
-import org.apache.tuscany.model.assembly.Aggregate;
-import org.apache.tuscany.model.assembly.AssemblyFactory;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.ComponentImplementation;
-import org.apache.tuscany.model.assembly.ConfiguredProperty;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.Property;
-import org.apache.tuscany.model.assembly.Reference;
-import org.apache.tuscany.model.assembly.Service;
 import org.apache.tuscany.model.assembly.SimpleComponent;
-import org.apache.tuscany.model.assembly.sdo.impl.ComponentImpl;
 
 /**
- * An implementation of the model object '<em><b>Component</b></em>'.
+ * An implementation of SimpleComponent.
  */
 public class SimpleComponentImpl extends ComponentImpl implements SimpleComponent {
-    private List<ConfiguredReference> configuredReferences;
-    private Map<String, ConfiguredReference> configuredReferencesMap;
-    private List<ConfiguredService> configuredServices;
-    private Map<String, ConfiguredService> configuredServicesMap;
-    private List<ConfiguredProperty> configuredProperties;
-    private Map<String, ConfiguredProperty> configuredPropertiesMap;
 
     /**
      * Constructor
@@ -57,171 +29,4 @@
     protected SimpleComponentImpl() {
     }
 
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ComponentImpl#getName()
-     */
-    public String getName() {
-        return super.getName();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.ComponentImpl#setName(java.lang.String)
-     */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getComponentImplementation()
-     */
-    public ComponentImplementation getComponentImplementation() {
-        return (ComponentImplementation) super.getImplementation();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#setComponentImplementation(org.apache.tuscany.model.assembly.ComponentImplementation)
-     */
-    public void setComponentImplementation(ComponentImplementation value) {
-        super.setImplementation((Implementation) value);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Part#getAggregate()
-     */
-    public Aggregate getAggregate() {
-        return (Aggregate) super.getContainer();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredServices()
-     */
-    public List<ConfiguredService> getConfiguredServices() {
-        return configuredServices;
-    }
-
-    public ConfiguredService getConfiguredService(String name) {
-        return configuredServicesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredReferences()
-     */
-    public List<ConfiguredReference> getConfiguredReferences() {
-        return configuredReferences;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredReference(java.lang.String)
-     */
-    public ConfiguredReference getConfiguredReference(String name) {
-        return configuredReferencesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperties()
-     */
-    public List<ConfiguredProperty> getConfiguredProperties() {
-        return configuredProperties;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperty(java.lang.String)
-     */
-    public ConfiguredProperty getConfiguredProperty(String name) {
-        return configuredPropertiesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
-     */
-    public void initialize(AssemblyModelContext modelContext) {
-        AssemblyFactory factory = modelContext.getAssemblyFactory();
-
-        // Initialize the implementation
-        ComponentImplementation implementation = getComponentImplementation();
-        if (implementation != null) {
-            implementation.initialize(modelContext);
-        }
-
-        // Derive the service endpoints from the services on the component type
-        configuredServices = new ArrayList<ConfiguredService>();
-        configuredServicesMap = new HashMap<String, ConfiguredService>();
-        configuredReferences = new ArrayList<ConfiguredReference>();
-        configuredReferencesMap = new HashMap<String, ConfiguredReference>();
-        configuredProperties = new ArrayList<ConfiguredProperty>();
-        configuredPropertiesMap = new HashMap<String, ConfiguredProperty>();
-        if (implementation != null) {
-            for (Iterator<Service> i = implementation.getServices().iterator(); i.hasNext();) {
-                Service service = i.next();
-                ConfiguredService serviceEndpoint = factory.createConfiguredService();
-                serviceEndpoint.setPort(service);
-                serviceEndpoint.setPart(this);
-                configuredServices.add(serviceEndpoint);
-                configuredServicesMap.put(service.getName(), serviceEndpoint);
-                serviceEndpoint.initialize(modelContext);
-            }
-
-            // Derive the reference values from the references on the component type
-            for (Iterator<Reference> i = implementation.getReferences().iterator(); i.hasNext();) {
-                Reference reference = i.next();
-                ConfiguredReference referenceValue = factory.createConfiguredReference();
-                referenceValue.setPort(reference);
-                referenceValue.setPart(this);
-                configuredReferences.add(referenceValue);
-                configuredReferencesMap.put(reference.getName(), referenceValue);
-                referenceValue.initialize(modelContext);
-            }
-
-            // Populate property values map
-            if (super.getPropertyValues() != null) {
-                Sequence sequence = super.getPropertyValues().getAny();
-                for (int p = 0, n = sequence.size(); p < n; p++) {
-
-                    // Get each property value element
-                    commonj.sdo.Property propertyElementDef = sequence.getProperty(p);
-                    DataObject propertyElement = (DataObject) sequence.getValue(p);
-
-                    // Get the corresponding property definition
-                    String propertyName = propertyElementDef.getName();
-                    Property property = implementation.getProperty(propertyName);
-                    if (property == null) {
-                        throw new IllegalArgumentException("Undefined property " + propertyName);
-                    }
-
-                    // Create a property value object
-                    ConfiguredProperty propertyValue = factory.createConfiguredProperty();
-                    propertyValue.setComponent(this);
-                    propertyValue.setProperty(property);
-
-                    // Get the property value text and convert to the expected java type
-                    Sequence text = propertyElement.getSequence(0);
-                    if (text != null && text.size() != 0) {
-                        Object rawValue = text.getValue(0);
-                        propertyValue.setValue(rawValue);
-                    }
-
-                    // Add the property value object to the map
-                    configuredProperties.add(propertyValue);
-                    configuredPropertiesMap.put(propertyName, propertyValue);
-                }
-            }
-        } else {
-            // FIXME shouldn't we be throwing an exception here
-            // log.error("Component " + getName() + " has no implementation");
-        }
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
-     */
-    public void freeze() {
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
-     */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
-    }
-
-} //ComponentImpl
+}

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java Mon Feb 20 22:41:58 2006
@@ -16,30 +16,14 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Component;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.ExternalService;
-import org.apache.tuscany.model.assembly.Part;
-import org.apache.tuscany.model.assembly.ServiceURI;
 import org.apache.tuscany.model.assembly.Subsystem;
 
 /**
- * An implementation of the model object '<em><b>Subsystem</b></em>'.
+ * An implementation of Subsystem.
  */
-public class SubsystemImpl extends org.apache.tuscany.model.assembly.sdo.impl.SubsystemImpl implements Subsystem {
-    private Map<String, Component> componentsMap;
-    private Map<String, EntryPoint> entryPointsMap; // FIXME this is never initialized
-    private Map<String, ExternalService> externalServicesMap; // FIXME this is never initialized
-    private List<Part> parts;
+public class SubsystemImpl extends AggregateImpl implements Subsystem {
+    
+    private String uri;
 
     /**
      * Constructor
@@ -48,127 +32,18 @@
     }
 
     /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.SubsystemImpl#getName()
-     */
-    public String getName() {
-        return super.getName();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.sdo.impl.SubsystemImpl#setName(java.lang.String)
-     */
-    public void setName(String newName) {
-        super.setName(newName);
-    }
-
-    /**
      * @see org.apache.tuscany.model.assembly.Subsystem#getURI()
      */
     public String getURI() {
-        return super.getUri();
+        return uri;
     }
 
     /**
      * @see org.apache.tuscany.model.assembly.Subsystem#setURI(java.lang.String)
      */
     public void setURI(String value) {
-        super.setUri(value);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getComponents()
-     */
-    public List<Component> getComponents() {
-        return super.getModuleComponents();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getComponent(java.lang.String)
-     */
-    public Component getComponent(String name) {
-        return componentsMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoints()
-     */
-    public List<EntryPoint> getEntryPoints() {
-        return super.getEntryPoints();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoint(java.lang.String)
-     */
-    public EntryPoint getEntryPoint(String name) {
-        return entryPointsMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getExternalServices()
-     */
-    public List<ExternalService> getExternalServices() {
-        return super.getExternalServices();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getExternalService(java.lang.String)
-     */
-    public ExternalService getExternalService(String name) {
-        return externalServicesMap.get(name);
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getParts()
-     */
-    public List<Part> getParts() {
-        return parts;
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
-     */
-    public ConfiguredService getConfiguredService(ServiceURI address) {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
-     */
-    public void initialize(AssemblyModelContext modelContext) {
-        // Populate components, entry points and external services
-        componentsMap = new HashMap<String, Component>();
-        for (Iterator<Component> i = getComponents().iterator(); i.hasNext();) {
-            Component component = i.next();
-            componentsMap.put(component.getName(), component);
-            component.initialize(modelContext);
-        }
-        for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
-            EntryPoint entryPoint = i.next();
-            entryPointsMap.put(entryPoint.getName(), entryPoint);
-            entryPoint.initialize(modelContext);
-        }
-        for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
-            ExternalService externalService = i.next();
-            externalServicesMap.put(externalService.getName(), externalService);
-            externalService.initialize(modelContext);
-        }
-        parts = new ArrayList<Part>();
-        parts.addAll(getEntryPoints());
-        parts.addAll(getComponents());
-        parts.addAll(getExternalServices());
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
-     */
-    public void freeze() {
-    }
-
-    /**
-     * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
-     */
-    public boolean accept(AssemblyModelVisitor visitor) {
-        return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+        checkNotFrozen();
+        uri=value;
     }
 
-} //SubsystemImpl
+}