- // Check if all required services are already provided by
- // earlier
- // systems.
- RequiredInterface[] required = system.getRequiredInterfaces();
-
- for (RequiredInterface descriptor : required) {
- ProvidedInterface[] filtered = filterProvidedServices(
- descriptor, allProvided);
-
- if (filtered.length == 0) {
- throw new SystemAssemblyException(
- "Service '"
- + descriptor
- + "' required by system '"
- + system
- + "' is not provided by systems that are started earlier");
- }
- if (filtered.length > 1) {
- throw new SystemAssemblyException(
- "Service '"
- + descriptor
- + "' required by system '"
- + system
- + "' matches multiple services provided by other systems: "
- + Arrays.asList(filtered));
- }
- descriptor.setProvider(filtered[0]);
- }