*
* @author Erik Brakkee
*/
-public class CompositeComponent extends AbstractComponent {
+public class Container extends AbstractComponent {
- private static final Log LOG = LogFactory.getLog(CompositeComponent.class);
+ private static final Log LOG = LogFactory.getLog(Container.class);
private Component[] _systems;
* @param aProvided Provided services of the system.
* @param aRequired Required services by the system.
*/
- public CompositeComponent(String aName, ServiceRegistry aRegistry, Component[] aSystems,
- InterfaceDescriptor[] aProvided, InterfaceDescriptor[] aRequired) {
+ public Container(String aName, ServiceRegistry aRegistry, Component[] aSystems,
+ ProvidedInterfaceDescriptor[] aProvided, RequiredInterfaceDescriptor[] aRequired) {
super(aName, aRegistry, aProvided, aRequired);
_systems = aSystems;
validate();
for (InterfaceDescriptor service: getRequiredServices()) {
reallyRequired.remove(service);
}
- for (InterfaceDescriptor service: reallyRequired) {
- throw new SystemAssemblyException(getName() + ": " + "Service '" + service + "' is not provided internally and is not indicated as required for this sub system");
+ String missingRequired = "";
+ for (InterfaceDescriptor service: reallyRequired) {
+ missingRequired += service + "\n";
+ }
+ if ( missingRequired.length() > 0 ) {
+ throw new SystemAssemblyException(getName() + ": missing required services\n" + missingRequired);
}
}