[Gradle, JS] make state in KotlinRootNpmResolverStateHolder public

This commit is contained in:
Ilya Goncharov
2022-07-21 20:20:15 +02:00
committed by teamcity
parent 6759263ae9
commit 4284f6b573
2 changed files with 15 additions and 15 deletions
@@ -58,15 +58,9 @@ internal class KotlinRootNpmResolver internal constructor(
rootProject_.version.toString()
}
enum class State {
CONFIGURING,
PROJECTS_CLOSED,
INSTALLED
}
@Transient
@Volatile
private var state_: State? = State.CONFIGURING
private var state_: RootResolverState? = RootResolverState.CONFIGURING
private var state
get() = state_ ?: resolverStateHolder.get().state
@@ -191,7 +185,7 @@ internal class KotlinRootNpmResolver internal constructor(
fun addProject(target: Project) {
synchronized(projectResolvers) {
check(state == State.CONFIGURING) { alreadyResolvedMessage("add new project: $target") }
check(state == RootResolverState.CONFIGURING) { alreadyResolvedMessage("add new project: $target") }
projectResolvers[target.path] = KotlinProjectNpmResolver(target, this)
}
}
@@ -246,10 +240,10 @@ internal class KotlinRootNpmResolver internal constructor(
*/
internal fun prepareInstallation(logger: Logger): Installation {
synchronized(projectResolvers) {
check(state == State.CONFIGURING) {
check(state == RootResolverState.CONFIGURING) {
"Projects must be configuring"
}
state = State.PROJECTS_CLOSED
state = RootResolverState.PROJECTS_CLOSED
val projectResolutions = projectResolvers.values
.map { it.close() }
@@ -288,10 +282,10 @@ internal class KotlinRootNpmResolver internal constructor(
logger: Logger
): KotlinRootNpmResolution {
synchronized(projectResolvers) {
check(state == State.PROJECTS_CLOSED) {
check(state == RootResolverState.PROJECTS_CLOSED) {
"Projects must be closed"
}
state = State.INSTALLED
state = RootResolverState.INSTALLED
val allNpmPackages = projectResolutions
.values
@@ -327,4 +321,10 @@ internal class KotlinRootNpmResolver internal constructor(
}
}
enum class RootResolverState {
CONFIGURING,
PROJECTS_CLOSED,
INSTALLED
}
const val PACKAGE_JSON_UMBRELLA_TASK_NAME = "packageJsonUmbrella"
@@ -19,8 +19,8 @@ import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnEnv
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnResolution
// We use this service as a single storage for duplicated data in configuration cache
internal abstract class KotlinRootNpmResolverStateHolder : BuildService<KotlinRootNpmResolverStateHolder.Parameters> {
interface Parameters : BuildServiceParameters {
abstract class KotlinRootNpmResolverStateHolder : BuildService<KotlinRootNpmResolverStateHolder.Parameters> {
internal interface Parameters : BuildServiceParameters {
val plugins: ListProperty<RootResolverPlugin>
val projectResolvers: MapProperty<String, KotlinProjectNpmResolver>
val packageManager: Property<NpmApi>
@@ -36,5 +36,5 @@ internal abstract class KotlinRootNpmResolverStateHolder : BuildService<KotlinRo
var initialized = false
@Volatile
var state = KotlinRootNpmResolver.State.CONFIGURING
var state = RootResolverState.CONFIGURING
}