- List<? extends ModuleFactory> list) {
- Map<String, ModuleFactory> moduleNamesToConfigBeanFactories = new HashMap<>();
- StringBuffer errors = new StringBuffer();
- for (ModuleFactory factory : list) {
- String moduleName = factory.getImplementationName();
- if (moduleName == null || moduleName.isEmpty()) {
- throw new IllegalStateException(
- "Invalid implementation name for " + factory);
- }
- logger.debug("Reading factory {} {}", moduleName, factory);
- String error = null;
- ModuleFactory conflicting = moduleNamesToConfigBeanFactories
- .get(moduleName);
- if (conflicting != null) {
- error = String
- .format("Module name is not unique. Found two conflicting factories with same name '%s': " +
- "\n\t%s\n\t%s\n", moduleName, conflicting, factory);
-
- }
-
- if (error == null) {
- moduleNamesToConfigBeanFactories.put(moduleName, factory);
- } else {
- errors.append(error);
- }
-
- }
- if (errors.length() > 0) {
- throw new IllegalArgumentException(errors.toString());
- }