Added missing test case.
[utils] / 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 7bc120aaf3b8991f08b7b5ddac851bca8cc9d3f7..a80aa1a21f0c7136b2acd66d8c2b8f9eff6091bf 100644 (file)
@@ -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);
                }
        }