Wizard: use cache redirector on project importing tests
This commit is contained in:
@@ -64,4 +64,5 @@ testsJar()
|
|||||||
projectTest {
|
projectTest {
|
||||||
dependsOn(":dist")
|
dependsOn(":dist")
|
||||||
workingDir = rootDir
|
workingDir = rootDir
|
||||||
|
systemProperty("cacheRedirectorEnabled", findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() == true)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -14,17 +14,20 @@ import org.jetbrains.kotlin.tools.projectWizard.Versions
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.core.asNullable
|
import org.jetbrains.kotlin.tools.projectWizard.core.asNullable
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.safe
|
import org.jetbrains.kotlin.tools.projectWizard.core.safe
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.EapVersionDownloader
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.EapVersionDownloader
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar
|
||||||
|
|
||||||
class IdeaKotlinVersionProviderService : KotlinVersionProviderService, IdeaWizardService {
|
class IdeaKotlinVersionProviderService : KotlinVersionProviderService(), IdeaWizardService {
|
||||||
override fun getKotlinVersion(): Version =
|
override fun getKotlinVersion(): WizardKotlinVersion {
|
||||||
getPatchedKotlinVersion()
|
val version = getPatchedKotlinVersion()
|
||||||
?: getKotlinVersionFromCompiler()
|
?: getKotlinVersionFromCompiler()
|
||||||
?: VersionsDownloader.downloadLatestEapOrStableKotlinVersion()
|
?: VersionsDownloader.downloadLatestEapOrStableKotlinVersion()
|
||||||
?: Versions.KOTLIN
|
?: Versions.KOTLIN
|
||||||
|
return kotlinVersionWithDefaultValues(version)
|
||||||
|
}
|
||||||
|
|
||||||
private fun getPatchedKotlinVersion() =
|
private fun getPatchedKotlinVersion() =
|
||||||
if (ApplicationManager.getApplication().isInternal) {
|
if (ApplicationManager.getApplication().isInternal) {
|
||||||
|
|||||||
+31
-3
@@ -6,13 +6,41 @@
|
|||||||
package org.jetbrains.kotlin.tools.projectWizard.cli
|
package org.jetbrains.kotlin.tools.projectWizard.cli
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.EapVersionDownloader
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.EapVersionDownloader
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionKind
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.BintrayRepository
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository
|
||||||
|
|
||||||
class KotlinVersionProviderTestWizardService : KotlinVersionProviderService, TestWizardService {
|
class KotlinVersionProviderTestWizardService() : KotlinVersionProviderService(), TestWizardService {
|
||||||
override fun getKotlinVersion(): Version = TEST_KOTLIN_VERSION
|
private val useCacheRedirector
|
||||||
|
get() = System.getProperty("cacheRedirectorEnabled")?.toBoolean() == true
|
||||||
|
|
||||||
|
|
||||||
|
override fun getKotlinVersion(): WizardKotlinVersion =
|
||||||
|
kotlinVersionWithDefaultValues(TEST_KOTLIN_VERSION)
|
||||||
|
|
||||||
|
override fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = if (useCacheRedirector) {
|
||||||
|
getKotlinVersionRepositoryWithCacheRedirector(versionKind)
|
||||||
|
} else {
|
||||||
|
super.getKotlinVersionRepository(versionKind)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getKotlinVersionRepositoryWithCacheRedirector(versionKind: KotlinVersionKind): Repository = when (versionKind) {
|
||||||
|
KotlinVersionKind.STABLE -> DefaultRepository.MAVEN_CENTRAL
|
||||||
|
KotlinVersionKind.EAP -> KOTLIN_EAP_BINTRAY_WITH_CACHE_REDIRECTOR
|
||||||
|
KotlinVersionKind.DEV -> KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR
|
||||||
|
KotlinVersionKind.M -> KOTLIN_EAP_BINTRAY_WITH_CACHE_REDIRECTOR
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private const val CACHE_REDIRECTOR_BINTRAY_URL = "https://cache-redirector.jetbrains.com/dl.bintray.com"
|
||||||
|
|
||||||
|
private val KOTLIN_EAP_BINTRAY_WITH_CACHE_REDIRECTOR = BintrayRepository("kotlin/kotlin-eap", CACHE_REDIRECTOR_BINTRAY_URL)
|
||||||
|
private val KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR = BintrayRepository("kotlin/kotlin-dev", CACHE_REDIRECTOR_BINTRAY_URL)
|
||||||
|
|
||||||
|
|
||||||
val TEST_KOTLIN_VERSION by lazy {
|
val TEST_KOTLIN_VERSION by lazy {
|
||||||
EapVersionDownloader.getLatestDevVersion()!!
|
EapVersionDownloader.getLatestDevVersion()!!
|
||||||
}
|
}
|
||||||
|
|||||||
+36
-17
@@ -20,28 +20,47 @@ import java.io.InputStreamReader
|
|||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.util.stream.Collectors
|
import java.util.stream.Collectors
|
||||||
|
|
||||||
interface KotlinVersionProviderService : WizardService {
|
data class WizardKotlinVersion(val version: Version, val kind: KotlinVersionKind, val repository: Repository)
|
||||||
fun getKotlinVersion(): Version
|
|
||||||
}
|
|
||||||
|
|
||||||
class KotlinVersionProviderServiceImpl : KotlinVersionProviderService, IdeaIndependentWizardService {
|
abstract class KotlinVersionProviderService : WizardService {
|
||||||
override fun getKotlinVersion(): Version = Versions.KOTLIN
|
abstract fun getKotlinVersion(): WizardKotlinVersion
|
||||||
}
|
|
||||||
|
|
||||||
|
protected fun kotlinVersionWithDefaultValues(version: Version) = WizardKotlinVersion(
|
||||||
|
version,
|
||||||
|
getKotlinVersionKind(version),
|
||||||
|
getKotlinVersionRepository(version)
|
||||||
|
)
|
||||||
|
|
||||||
val Version.kotlinVersionKind
|
protected open fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = when (versionKind) {
|
||||||
get() = when {
|
KotlinVersionKind.STABLE -> DefaultRepository.MAVEN_CENTRAL
|
||||||
"eap" in toString().toLowerCase() -> KotlinVersionKind.EAP
|
KotlinVersionKind.EAP -> Repositories.KOTLIN_EAP_BINTRAY
|
||||||
"dev" in toString().toLowerCase() -> KotlinVersionKind.DEV
|
KotlinVersionKind.M -> Repositories.KOTLIN_EAP_BINTRAY
|
||||||
"m" in toString().toLowerCase() -> KotlinVersionKind.M
|
KotlinVersionKind.DEV -> Repositories.KOTLIN_DEV_BINTRAY
|
||||||
else -> KotlinVersionKind.STABLE
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class KotlinVersionKind(val repository: Repository) {
|
private fun getKotlinVersionRepository(version: Version) =
|
||||||
STABLE(repository = DefaultRepository.MAVEN_CENTRAL),
|
getKotlinVersionRepository(getKotlinVersionKind(version))
|
||||||
EAP(repository = Repositories.KOTLIN_EAP_BINTRAY),
|
|
||||||
DEV(repository = Repositories.KOTLIN_DEV_BINTRAY),
|
private fun getKotlinVersionKind(version: Version) = when {
|
||||||
M(repository = Repositories.KOTLIN_EAP_BINTRAY)
|
"eap" in version.toString().toLowerCase() -> KotlinVersionKind.EAP
|
||||||
|
"dev" in version.toString().toLowerCase() -> KotlinVersionKind.DEV
|
||||||
|
"m" in version.toString().toLowerCase() -> KotlinVersionKind.M
|
||||||
|
else -> KotlinVersionKind.STABLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class KotlinVersionProviderServiceImpl : KotlinVersionProviderService(), IdeaIndependentWizardService {
|
||||||
|
override fun getKotlinVersion(): WizardKotlinVersion =
|
||||||
|
kotlinVersionWithDefaultValues(Versions.KOTLIN)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
enum class KotlinVersionKind {
|
||||||
|
STABLE,
|
||||||
|
EAP,
|
||||||
|
DEV,
|
||||||
|
M
|
||||||
}
|
}
|
||||||
|
|
||||||
val KotlinVersionKind.isStable
|
val KotlinVersionKind.isStable
|
||||||
|
|||||||
+4
-3
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.ignore
|
import org.jetbrains.kotlin.tools.projectWizard.core.ignore
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
||||||
@@ -39,7 +40,7 @@ data class GradleOnlyPluginByNameIR(@NonNls val pluginId: String, override val p
|
|||||||
|
|
||||||
data class KotlinBuildSystemPluginIR(
|
data class KotlinBuildSystemPluginIR(
|
||||||
val type: Type,
|
val type: Type,
|
||||||
val version: Version?,
|
val version: WizardKotlinVersion?,
|
||||||
override val priority: Int? = null
|
override val priority: Int? = null
|
||||||
) : BuildSystemPluginIR {
|
) : BuildSystemPluginIR {
|
||||||
|
|
||||||
@@ -49,7 +50,7 @@ data class KotlinBuildSystemPluginIR(
|
|||||||
GradlePrinter.GradleDsl.KOTLIN -> call("kotlin") { +type.toString().quotified }
|
GradlePrinter.GradleDsl.KOTLIN -> call("kotlin") { +type.toString().quotified }
|
||||||
GradlePrinter.GradleDsl.GROOVY -> call("id") { +"org.jetbrains.kotlin.$type".quotified }
|
GradlePrinter.GradleDsl.GROOVY -> call("id") { +"org.jetbrains.kotlin.$type".quotified }
|
||||||
}
|
}
|
||||||
version?.let {
|
version?.version?.let {
|
||||||
+" version "
|
+" version "
|
||||||
+it.toString().quotified
|
+it.toString().quotified
|
||||||
}.ignore()
|
}.ignore()
|
||||||
@@ -57,7 +58,7 @@ data class KotlinBuildSystemPluginIR(
|
|||||||
is MavenPrinter -> node("plugin") {
|
is MavenPrinter -> node("plugin") {
|
||||||
singleLineNode("groupId") { +"org.jetbrains.kotlin" }
|
singleLineNode("groupId") { +"org.jetbrains.kotlin" }
|
||||||
singleLineNode("artifactId") { +"kotlin-maven-plugin" }
|
singleLineNode("artifactId") { +"kotlin-maven-plugin" }
|
||||||
singleLineNode("version") { +version.toString() }
|
singleLineNode("version") { +version?.version.toString() }
|
||||||
|
|
||||||
node("executions") {
|
node("executions") {
|
||||||
node("execution") {
|
node("execution") {
|
||||||
|
|||||||
+8
-9
@@ -1,6 +1,6 @@
|
|||||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.kotlinVersionKind
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.library.LibraryArtifact
|
import org.jetbrains.kotlin.tools.projectWizard.library.LibraryArtifact
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact
|
import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact
|
||||||
@@ -8,9 +8,7 @@ import org.jetbrains.kotlin.tools.projectWizard.library.NpmArtifact
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.MavenPrinter
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.MavenPrinter
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository.Companion.MAVEN_CENTRAL
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModulePath
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModulePath
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
||||||
|
|
||||||
@@ -112,14 +110,15 @@ data class ArtifactBasedLibraryDependencyIR(
|
|||||||
|
|
||||||
abstract class KotlinLibraryDependencyIR(
|
abstract class KotlinLibraryDependencyIR(
|
||||||
val artifactName: String,
|
val artifactName: String,
|
||||||
override val version: Version,
|
|
||||||
override val dependencyType: DependencyType
|
override val dependencyType: DependencyType
|
||||||
) : LibraryDependencyIR {
|
) : LibraryDependencyIR {
|
||||||
|
abstract val kotlinVersion: WizardKotlinVersion
|
||||||
|
final override val version: Version get() = kotlinVersion.version
|
||||||
abstract val isInMppModule: Boolean
|
abstract val isInMppModule: Boolean
|
||||||
|
|
||||||
override val artifact: LibraryArtifact
|
override val artifact: LibraryArtifact
|
||||||
get() = MavenArtifact(
|
get() = MavenArtifact(
|
||||||
version.kotlinVersionKind.repository,
|
kotlinVersion.repository,
|
||||||
"org.jetbrains.kotlin",
|
"org.jetbrains.kotlin",
|
||||||
"kotlin-$artifactName"
|
"kotlin-$artifactName"
|
||||||
)
|
)
|
||||||
@@ -153,18 +152,18 @@ abstract class KotlinLibraryDependencyIR(
|
|||||||
data class KotlinStdlibDependencyIR(
|
data class KotlinStdlibDependencyIR(
|
||||||
val type: StdlibType,
|
val type: StdlibType,
|
||||||
override val isInMppModule: Boolean,
|
override val isInMppModule: Boolean,
|
||||||
override val version: Version,
|
override val kotlinVersion: WizardKotlinVersion,
|
||||||
override val dependencyType: DependencyType
|
override val dependencyType: DependencyType
|
||||||
) : KotlinLibraryDependencyIR(type.artifact, version, dependencyType) {
|
) : KotlinLibraryDependencyIR(type.artifact, dependencyType) {
|
||||||
override fun withDependencyType(type: DependencyType): KotlinStdlibDependencyIR = copy(dependencyType = type)
|
override fun withDependencyType(type: DependencyType): KotlinStdlibDependencyIR = copy(dependencyType = type)
|
||||||
}
|
}
|
||||||
|
|
||||||
data class KotlinArbitraryDependencyIR(
|
data class KotlinArbitraryDependencyIR(
|
||||||
val name: String,
|
val name: String,
|
||||||
override val isInMppModule: Boolean,
|
override val isInMppModule: Boolean,
|
||||||
override val version: Version,
|
override val kotlinVersion: WizardKotlinVersion,
|
||||||
override val dependencyType: DependencyType
|
override val dependencyType: DependencyType
|
||||||
) : KotlinLibraryDependencyIR(name, version, dependencyType) {
|
) : KotlinLibraryDependencyIR(name, dependencyType) {
|
||||||
override fun withDependencyType(type: DependencyType): KotlinArbitraryDependencyIR = copy(dependencyType = type)
|
override fun withDependencyType(type: DependencyType): KotlinArbitraryDependencyIR = copy(dependencyType = type)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.ModuleConfi
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.PluginSettingReference
|
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.PluginSettingReference
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingType
|
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.reference
|
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.reference
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.kotlinVersionKind
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.AndroidConfigIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.AndroidConfigIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact
|
import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact
|
||||||
@@ -111,11 +111,11 @@ interface AndroidModuleConfigurator : ModuleConfigurator,
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun createRepositories(kotlinVersion: Version) = buildList<Repository> {
|
fun createRepositories(kotlinVersion: WizardKotlinVersion) = buildList<Repository> {
|
||||||
+DefaultRepository.GRADLE_PLUGIN_PORTAL
|
+DefaultRepository.GRADLE_PLUGIN_PORTAL
|
||||||
+DefaultRepository.GOOGLE
|
+DefaultRepository.GOOGLE
|
||||||
+DefaultRepository.JCENTER
|
+DefaultRepository.JCENTER
|
||||||
addIfNotNull(kotlinVersion.kotlinVersionKind.repository)
|
+kotlinVersion.repository
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -5,7 +5,6 @@ import org.jetbrains.annotations.NonNls
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.Versions
|
import org.jetbrains.kotlin.tools.projectWizard.Versions
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.kotlinVersionKind
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.BuildScriptDependencyIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.BuildScriptDependencyIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.BuildScriptRepositoryIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.BuildScriptRepositoryIR
|
||||||
@@ -45,13 +44,13 @@ object AndroidSinglePlatformModuleConfigurator :
|
|||||||
DefaultRepository.GRADLE_PLUGIN_PORTAL,
|
DefaultRepository.GRADLE_PLUGIN_PORTAL,
|
||||||
DefaultRepository.JCENTER,
|
DefaultRepository.JCENTER,
|
||||||
DefaultRepository.GOOGLE,
|
DefaultRepository.GOOGLE,
|
||||||
configurationData.kotlinVersion.kotlinVersionKind.repository
|
configurationData.kotlinVersion.repository
|
||||||
).forEach { repository ->
|
).forEach { repository ->
|
||||||
+BuildScriptRepositoryIR(RepositoryIR((repository)))
|
+BuildScriptRepositoryIR(RepositoryIR((repository)))
|
||||||
}
|
}
|
||||||
|
|
||||||
irsList {
|
irsList {
|
||||||
"classpath"(const("org.jetbrains.kotlin:kotlin-gradle-plugin:${configurationData.kotlinVersion}"))
|
"classpath"(const("org.jetbrains.kotlin:kotlin-gradle-plugin:${configurationData.kotlinVersion.version}"))
|
||||||
"classpath"(const("com.android.tools.build:gradle:${Versions.GRADLE_PLUGINS.ANDROID}"))
|
"classpath"(const("com.android.tools.build:gradle:${Versions.GRADLE_PLUGINS.ANDROID}"))
|
||||||
}.forEach {
|
}.forEach {
|
||||||
+BuildScriptDependencyIR(it)
|
+BuildScriptDependencyIR(it)
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@ interface ModuleConfiguratorWithTests : ModuleConfiguratorWithSettings {
|
|||||||
dependencyName,
|
dependencyName,
|
||||||
isInMppModule = module.kind
|
isInMppModule = module.kind
|
||||||
.let { it == ModuleKind.multiplatform || it == ModuleKind.target },
|
.let { it == ModuleKind.multiplatform || it == ModuleKind.target },
|
||||||
version = KotlinPlugin::version.propertyValue,
|
kotlinVersion = KotlinPlugin::version.propertyValue,
|
||||||
dependencyType = DependencyType.TEST
|
dependencyType = DependencyType.TEST
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-5
@@ -23,7 +23,10 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
|||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
|
||||||
class KotlinPlugin(context: Context) : Plugin(context) {
|
class KotlinPlugin(context: Context) : Plugin(context) {
|
||||||
val version by property(Versions.KOTLIN)
|
val version by property(
|
||||||
|
// todo do not hardcode kind & repository
|
||||||
|
WizardKotlinVersion(Versions.KOTLIN, KotlinVersionKind.M, Repositories.KOTLIN_EAP_BINTRAY)
|
||||||
|
)
|
||||||
|
|
||||||
val initKotlinVersions by pipelineTask(GenerationPhase.PREPARE_GENERATION) {
|
val initKotlinVersions by pipelineTask(GenerationPhase.PREPARE_GENERATION) {
|
||||||
title = KotlinNewProjectWizardBundle.message("plugin.kotlin.downloading.kotlin.versions")
|
title = KotlinNewProjectWizardBundle.message("plugin.kotlin.downloading.kotlin.versions")
|
||||||
@@ -93,10 +96,9 @@ class KotlinPlugin(context: Context) : Plugin(context) {
|
|||||||
val createPluginRepositories by pipelineTask(GenerationPhase.PROJECT_GENERATION) {
|
val createPluginRepositories by pipelineTask(GenerationPhase.PROJECT_GENERATION) {
|
||||||
runBefore(BuildSystemPlugin::createModules)
|
runBefore(BuildSystemPlugin::createModules)
|
||||||
withAction {
|
withAction {
|
||||||
val pluginRepository = KotlinPlugin::version.propertyValue.kotlinVersionKind
|
val version = KotlinPlugin::version.propertyValue
|
||||||
.takeUnless(KotlinVersionKind::isStable)
|
if (version.kind.isStable) return@withAction UNIT_SUCCESS
|
||||||
?.repository
|
val pluginRepository = version.repository
|
||||||
?: return@withAction UNIT_SUCCESS
|
|
||||||
BuildSystemPlugin::pluginRepositoreis.addValues(pluginRepository) andThen
|
BuildSystemPlugin::pluginRepositoreis.addValues(pluginRepository) andThen
|
||||||
updateBuildFiles { buildFile ->
|
updateBuildFiles { buildFile ->
|
||||||
buildFile.withIrs(RepositoryIR(pluginRepository)).asSuccess()
|
buildFile.withIrs(RepositoryIR(pluginRepository)).asSuccess()
|
||||||
|
|||||||
+4
-3
@@ -5,6 +5,7 @@ import kotlinx.collections.immutable.toPersistentList
|
|||||||
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.*
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType
|
||||||
@@ -19,7 +20,7 @@ data class ModulesToIrConversionData(
|
|||||||
val rootModules: List<Module>,
|
val rootModules: List<Module>,
|
||||||
val projectPath: Path,
|
val projectPath: Path,
|
||||||
val projectName: String,
|
val projectName: String,
|
||||||
val kotlinVersion: Version,
|
val kotlinVersion: WizardKotlinVersion,
|
||||||
val buildSystemType: BuildSystemType,
|
val buildSystemType: BuildSystemType,
|
||||||
val pomIr: PomIR
|
val pomIr: PomIR
|
||||||
) {
|
) {
|
||||||
@@ -147,7 +148,7 @@ class ModulesToIRsConverter(
|
|||||||
KotlinStdlibDependencyIR(
|
KotlinStdlibDependencyIR(
|
||||||
type = stdlibType,
|
type = stdlibType,
|
||||||
isInMppModule = false,
|
isInMppModule = false,
|
||||||
version = data.kotlinVersion,
|
kotlinVersion = data.kotlinVersion,
|
||||||
dependencyType = DependencyType.MAIN
|
dependencyType = DependencyType.MAIN
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -243,7 +244,7 @@ class ModulesToIRsConverter(
|
|||||||
KotlinStdlibDependencyIR(
|
KotlinStdlibDependencyIR(
|
||||||
type = stdlibType,
|
type = stdlibType,
|
||||||
isInMppModule = true,
|
isInMppModule = true,
|
||||||
version = data.kotlinVersion,
|
kotlinVersion = data.kotlinVersion,
|
||||||
dependencyType = DependencyType.MAIN
|
dependencyType = DependencyType.MAIN
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -30,8 +30,8 @@ data class DefaultRepository(val type: Type) : Repository {
|
|||||||
|
|
||||||
interface CustomMavenRepository : Repository
|
interface CustomMavenRepository : Repository
|
||||||
|
|
||||||
data class BintrayRepository(val repository: String) : CustomMavenRepository {
|
data class BintrayRepository(val repository: String, val base: String = "https://dl.bintray.com") : CustomMavenRepository {
|
||||||
override val url: String = "https://dl.bintray.com/$repository"
|
override val url: String = "$base/$repository"
|
||||||
|
|
||||||
override val idForMaven: String
|
override val idForMaven: String
|
||||||
get() = "bintray." + repository.replace('/', '.')
|
get() = "bintray." + repository.replace('/', '.')
|
||||||
|
|||||||
+3
-3
@@ -78,13 +78,13 @@ class SimpleJsClientTemplate : Template() {
|
|||||||
|
|
||||||
val kotlinVersion = KotlinPlugin::version.propertyValue
|
val kotlinVersion = KotlinPlugin::version.propertyValue
|
||||||
if (renderEngine.reference.settingValue != RenderEngine.KOTLINX_HTML) {
|
if (renderEngine.reference.settingValue != RenderEngine.KOTLINX_HTML) {
|
||||||
+Dependencies.KOTLIN_REACT(kotlinVersion)
|
+Dependencies.KOTLIN_REACT(kotlinVersion.version)
|
||||||
+Dependencies.KOTLIN_REACT_DOM(kotlinVersion)
|
+Dependencies.KOTLIN_REACT_DOM(kotlinVersion.version)
|
||||||
+Dependencies.NPM_REACT
|
+Dependencies.NPM_REACT
|
||||||
+Dependencies.NPM_REACT_DOM
|
+Dependencies.NPM_REACT_DOM
|
||||||
if (renderEngine.reference.settingValue == RenderEngine.REACT_WITH_STYLED) {
|
if (renderEngine.reference.settingValue == RenderEngine.REACT_WITH_STYLED) {
|
||||||
+Dependencies.NPM_REACT_IS
|
+Dependencies.NPM_REACT_IS
|
||||||
+Dependencies.KOTLIN_STYLED(kotlinVersion)
|
+Dependencies.KOTLIN_STYLED(kotlinVersion.version)
|
||||||
+Dependencies.NPM_STYLED_COMPONENTS
|
+Dependencies.NPM_STYLED_COMPONENTS
|
||||||
+Dependencies.NPM_INLINE_STYLE_PREFIXER
|
+Dependencies.NPM_INLINE_STYLE_PREFIXER
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user