override fun getPluginsSpecification()

in plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/inspect/XmlPluginsSpecificationProvider.kt [18:47]


    override fun getPluginsSpecification(): String? {
        val pluginXmlElements = _pluginDescriptorsProvider.getPluginDescriptors()
            .mapNotNull {
                if (PluginDescriptorType.SOURCE == it.type) {
                    val matchResult = PluginDescriptorType.SOURCE.regex.matchEntire(it.value)
                    if (matchResult != null) {
                        val sourceId = matchResult.groupValues[1]
                        val value = matchResult.groupValues[2]

                        val generator = _sourceIdToXmlElementGenerator[sourceId.lowercase()]
                        if (generator != null) {
                            return@mapNotNull generator.generateXmlElement(value)
                        }
                    }
                }

                logInvalidDescriptor(it)
                return@mapNotNull null
            }

        val pluginsXmlElement = XmlElement("Packages", pluginXmlElements.asSequence())
        if (!pluginsXmlElement.isEmpty) {
            ByteArrayOutputStream().use {
                _xmlWriter.write(pluginsXmlElement, it)
                return it.toString(Charsets.UTF_8.name())
            }
        }

        return null
    }