ArrayList<TaskRepository> (@NotNull Element element) { ArrayList<TaskRepository> repositories = new ArrayList<>(); // do not initialize TaskRepositoryType EPs eagerly if we have no settings for any of them if (element.getChildren().isEmpty()) return repositories; for (TaskRepositoryType<?> repositoryType : TaskRepositoryType.getRepositoryTypes()) { for (Element o : element.getChildren(repositoryType.getName())) { try { TaskRepository repository = XmlSerializer.deserialize(o, repositoryType.getRepositoryClass()); repository.setRepositoryType(repositoryType); repository.initializeRepository(); repositories.add(repository); } catch (SerializationException e) { LOG.error(e.getMessage(), e); } } } return repositories; }