/**
* Composite system consisting of multiple subsystems.
+ *
+ * @author Erik Brakkee
*/
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();
}
}
@Override
- protected void doStart(String aContext, ServiceRegistry aRegistry, 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(aRegistry, 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) {