mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[platform] making UpdateStrategy app-independent
GitOrigin-RevId: d58d9b084beaaba9342d601f4ba052388e92b920
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e12f266e86
commit
97bfe1ab3a
+10
-6
@@ -4,22 +4,26 @@ package com.intellij.openapi.updateSettings.impl
|
||||
import com.intellij.openapi.updateSettings.UpdateStrategyCustomization
|
||||
import com.intellij.openapi.util.BuildNumber
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import com.intellij.util.graph.GraphAlgorithms
|
||||
import com.intellij.util.graph.InboundSemiGraph
|
||||
import com.intellij.util.graph.impl.ShortestPathFinder
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.util.*
|
||||
|
||||
private val NUMBER = Regex("\\d+")
|
||||
|
||||
class UpdateStrategy(private val currentBuild: BuildNumber, private val product: Product?, private val settings: UpdateSettings) {
|
||||
class UpdateStrategy(private val currentBuild: BuildNumber,
|
||||
private val product: Product?,
|
||||
private val settings: UpdateSettings,
|
||||
private val customization: UpdateStrategyCustomization) {
|
||||
|
||||
constructor(currentBuild: BuildNumber, product: Product?, settings: UpdateSettings) :
|
||||
this(currentBuild, product, settings, UpdateStrategyCustomization.getInstance())
|
||||
|
||||
@Deprecated("Please use `UpdateStrategy(BuildNumber, Product, UpdateSettings)` instead")
|
||||
@ApiStatus.ScheduledForRemoval(inVersion = "2022.2")
|
||||
@Suppress("DEPRECATION")
|
||||
constructor(currentBuild: BuildNumber, updates: UpdatesInfo, settings: UpdateSettings) :
|
||||
this(currentBuild, updates.product, settings)
|
||||
|
||||
private val customization = UpdateStrategyCustomization.getInstance()
|
||||
|
||||
enum class State {
|
||||
LOADED, CONNECTION_ERROR, NOTHING_LOADED
|
||||
}
|
||||
@@ -84,7 +88,7 @@ class UpdateStrategy(private val currentBuild: BuildNumber, private val product:
|
||||
override fun getNodes() = upgrades.keySet() + upgrades.values()
|
||||
override fun getIn(n: BuildNumber) = upgrades[n].iterator()
|
||||
}
|
||||
val path = GraphAlgorithms.getInstance().findShortestPath(graph, from.withoutProductCode(), newBuild.number.withoutProductCode())
|
||||
val path = ShortestPathFinder(graph).findPath(from.withoutProductCode(), newBuild.number.withoutProductCode())
|
||||
if (path == null || path.size <= 2) return null
|
||||
|
||||
var total = 0
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.ide.updates
|
||||
|
||||
import com.intellij.openapi.updateSettings.UpdateStrategyCustomization
|
||||
import com.intellij.openapi.updateSettings.impl.*
|
||||
import com.intellij.openapi.util.BuildNumber
|
||||
import com.intellij.openapi.util.JDOMUtil
|
||||
import com.intellij.testFramework.fixtures.BareTestFixtureTestCase
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Test
|
||||
|
||||
// unless stated otherwise, the behavior described in cases is true for 162+
|
||||
class UpdateStrategyTest : BareTestFixtureTestCase() {
|
||||
class UpdateStrategyTest {
|
||||
@Test fun `channel contains no builds`() {
|
||||
val result = check("IU-145.258", ChannelStatus.RELEASE, """<channel id="IDEA_Release" status="release" licensing="release"/>""")
|
||||
assertNull(result.newBuild)
|
||||
@@ -286,7 +286,8 @@ class UpdateStrategyTest : BareTestFixtureTestCase() {
|
||||
val settings = UpdateSettings()
|
||||
settings.selectedChannelStatus = selectedChannel
|
||||
settings.ignoredBuildNumbers += ignoredBuilds
|
||||
val result = UpdateStrategy(BuildNumber.fromString(currentBuild)!!, product, settings).checkForUpdates()
|
||||
val customization = UpdateStrategyCustomization()
|
||||
val result = UpdateStrategy(BuildNumber.fromString(currentBuild)!!, product, settings, customization).checkForUpdates()
|
||||
assertEquals(UpdateStrategy.State.LOADED, result.state)
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user