List<ModuleBuilder> () { List<ModuleBuilder> result = new ArrayList<>(); for (ModuleType<?> moduleType : ModuleTypeManager.getInstance().getRegisteredTypes()) { ModuleBuilder builder = moduleType.createModuleBuilder(); if (builder.isAvailable()) { result.add(builder); } } EP_NAME.processWithPluginDescriptor((bean, pluginDescriptor) -> { ModuleBuilder builder; try { builder = ApplicationManager.getApplication().instantiateClass(bean.builderClass, pluginDescriptor); } catch (ProcessCanceledException e) { throw e; } catch (Exception e) { LOG.error(e); return Unit.INSTANCE; } if (builder.isAvailable()) { result.add(builder); } return Unit.INSTANCE; }); return result; }