X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2FContainer.java;fp=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2FCompositeComponent.java;h=a80aa1a21f0c7136b2acd66d8c2b8f9eff6091bf;hb=e055966cbba51cbf35546dbc50f29516cf6e304f;hp=7bc120aaf3b8991f08b7b5ddac851bca8cc9d3f7;hpb=c46775f3e159ba9db714cfa9636881f2c6d4e873;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/CompositeComponent.java b/system/general/src/main/java/org/wamblee/system/Container.java similarity index 83% rename from system/general/src/main/java/org/wamblee/system/CompositeComponent.java rename to system/general/src/main/java/org/wamblee/system/Container.java index 7bc120aa..a80aa1a2 100644 --- a/system/general/src/main/java/org/wamblee/system/CompositeComponent.java +++ b/system/general/src/main/java/org/wamblee/system/Container.java @@ -14,9 +14,9 @@ import sun.util.LocaleServiceProviderPool.LocalizedObjectGetter; * * @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; @@ -28,8 +28,8 @@ public class CompositeComponent extends AbstractComponent { * @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(); @@ -75,8 +75,12 @@ public class CompositeComponent extends AbstractComponent { 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); } }