- for(Object sourceRepository_ : sourceRepositories.getServices()) {
- ModuleSourceRepository sourceLoader = (ModuleSourceRepository)sourceRepository_;
- sourceLoader.forAllModules(procedure);
- }
+ // getServices is internally synchronized, so no need to synchronize here
+ Object[] services = sourceRepositories.getServices();
+ if(services != null)
+ for(Object sourceRepository_ : services) {
+ ModuleSourceRepository sourceLoader = (ModuleSourceRepository)sourceRepository_;
+ sourceLoader.forAllModules(procedure);
+ }
+ }
+
+ @Override
+ public Collection<String> getModuleNames() {
+ ArrayList<String> result = new ArrayList<>();
+ forAllModules((String name) -> {
+ result.add(name);
+ return true;
+ });
+ return result;