void (@NotNull JpsProject project, @Nullable Element runManagerTag) { List<Element> elements = JDOMUtil.getChildren(runManagerTag, "configuration"); if (elements.isEmpty()) { return; } Map<String, JpsRunConfigurationPropertiesSerializer<?>> serializers = new HashMap<>(); for (JpsModelSerializerExtension extension : JpsModelSerializerExtension.getExtensions()) { for (JpsRunConfigurationPropertiesSerializer<?> serializer : extension.getRunConfigurationPropertiesSerializers()) { serializers.put(serializer.getTypeId(), serializer); } } for (Element configurationTag : elements) { if (Boolean.parseBoolean(configurationTag.getAttributeValue("default"))) { continue; } String typeId = configurationTag.getAttributeValue("type"); JpsRunConfigurationPropertiesSerializer<?> serializer = serializers.get(typeId); String name = configurationTag.getAttributeValue("name"); if (serializer != null) { loadRunConfiguration(name, configurationTag, serializer, project); } else if (name == null) { LOG.info("Run configuration '" + JDOMUtil.write(configurationTag) + "' wasn't loaded because 'name' attribute is missing"); } else if (typeId != null) { project.addRunConfiguration(name, new JpsUnknownRunConfigurationType(typeId), JpsElementFactory.getInstance().createDummyElement()); } else { LOG.info("Run configuration '" + name + "' wasn't loaded because 'type' attribute is missing"); } } }