now distinguishing between provided and required service and added
[utils] / system / general / src / main / java / org / wamblee / system / CompositeSystem.java
index f3b1bf752c08f0cbb8bdf2f3cb6ff2afc811a40f..50554d7f19f21b7c9c5210446151bed5704bdaa4 100644 (file)
@@ -21,13 +21,14 @@ public class CompositeSystem extends AbstractSubSystem {
        /**
         * Construcst the composite system. 
         * @param aName Name of the system. 
+        * @param aRegistry Service registry.
         * @param aSystems Subsystems. 
         * @param aProvided Provided services of the system. 
         * @param aRequired Required services by the system. 
         */
-       public CompositeSystem(String aName, SubSystem[] aSystems,
+       public CompositeSystem(String aName, ServiceRegistry aRegistry, SubSystem[] aSystems,
                        ServiceDescriptor[] aProvided, ServiceDescriptor[] aRequired) {
-               super(aName, aProvided, aRequired);
+               super(aName, aRegistry, aProvided, aRequired);
                _systems = aSystems;
                validate();
        }
@@ -78,14 +79,19 @@ public class CompositeSystem extends AbstractSubSystem {
        }
 
        @Override
-       protected void doInitialize(String aContext, Service[] aRequiredServices) {
-               List<ServiceDescriptor> descriptors = new ArrayList<ServiceDescriptor>();
+       protected void doStart(String aContext, Service[] aRequiredServices) {
+               List<ProvidedServiceDescriptor> descriptors = new ArrayList<ProvidedServiceDescriptor>();
                for (Service service : aRequiredServices) {
                        descriptors.add(service.getDescriptor());
                }
-               SystemAssembler assembler = new SystemAssembler(getName(), _systems,
-                               descriptors.toArray(new ServiceDescriptor[0]));
-               assembler.start(aRequiredServices);
+               SystemAssembler assembler = new SystemAssembler(aContext + "." + getName(), _systems,
+                               descriptors.toArray(new ProvidedServiceDescriptor[0]));
+               assembler.start(getRegistry(), aRequiredServices);
+       }
+       
+       @Override
+       protected void doStop() {
+               // Empty.       
        }
 
        private void info(String aMsg) {