From e6c2e7c805c9454f7b4eaa4d413067c3446a871a Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 12 May 2016 09:56:36 +0300 Subject: [PATCH] supported new attributes for full build numbers in updates.xml (IDEA-155844) --- .../openapi/updateSettings/impl/UpdateInfo.kt | 4 ++-- .../ide/updates/UpdateInfoParsingTest.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfo.kt b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfo.kt index 2ddef8c41e12..c02f38318e61 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfo.kt +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfo.kt @@ -54,7 +54,7 @@ class UpdateChannel(node: Element) { } class BuildInfo(node: Element) { - val number: BuildNumber = BuildNumber.fromString(node.getAttributeValue("number") ?: throw JDOMException("build@number missing")) + val number: BuildNumber = BuildNumber.fromString(node.getAttributeValue("fullNumber") ?: node.getAttributeValue("number") ?: throw JDOMException("build@number missing")) val apiVersion: BuildNumber = BuildNumber.fromString(node.getAttributeValue("apiVersion"), number.productCode) ?: number val version: String = node.getAttributeValue("version") ?: "" val message: String = node.getChild("message")?.value ?: "" @@ -85,7 +85,7 @@ class ButtonInfo(node: Element) { } class PatchInfo(node: Element) { - val fromBuild: BuildNumber = BuildNumber.fromString(node.getAttributeValue("from") ?: throw JDOMException("patch@from missing")) + val fromBuild: BuildNumber = BuildNumber.fromString(node.getAttributeValue("fullFrom") ?: node.getAttributeValue("from") ?: throw JDOMException("patch@from missing")) val size: String? = node.getAttributeValue("size") val isAvailable: Boolean = node.getAttributeValue("exclusions")?.splitToSequence(",")?.none { it.trim() == osSuffix } ?: true diff --git a/platform/platform-tests/testSrc/com/intellij/ide/updates/UpdateInfoParsingTest.kt b/platform/platform-tests/testSrc/com/intellij/ide/updates/UpdateInfoParsingTest.kt index 37a9bec9f233..68efd6a49867 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/updates/UpdateInfoParsingTest.kt +++ b/platform/platform-tests/testSrc/com/intellij/ide/updates/UpdateInfoParsingTest.kt @@ -106,5 +106,22 @@ class UpdateInfoParsingTest { assertEquals(2, info["IU"]!!.channels[0].builds.count { it.target != null }) } + @Test fun fullBuildNumbers() { + val info = load(""" + + + IU + + + + + + + """.trimIndent()) + val buildInfo = info["IU"]!!.channels[0].builds[0] + assertEquals("162.100.1", buildInfo.number.asString()) + assertEquals("162.99.2", buildInfo.patches[0].fromBuild.asString()) + } + private fun load(text: String) = UpdatesInfo(loadElement(text)) } \ No newline at end of file