KT-11261 Implement MavenArchetypesProvider extension point

This commit is contained in:
Sergey Mashkov
2016-04-01 18:23:55 +03:00
parent f2ddc83f86
commit c64b59ed82
2 changed files with 9 additions and 3 deletions
@@ -61,8 +61,13 @@ class KotlinMavenArchetypesProvider(val kotlinPluginVersion: String) : MavenArch
.map { it.asJsonObject }
.map { MavenArchetype(it.get("g").asString, it.get("a").asString, it.get("v").asString, null, null) }
.filter { it.version?.startsWith(versionPrefix) ?: false }
.maxBy { MavenVersionComparable(it.version) }
.let { listOfNotNull(it) }
.groupBy { it.groupId + ":" + it.artifactId }
.mapValues { chooseVersion(it.value) }
.mapNotNull { it.value }
private fun chooseVersion(versions: List<MavenArchetype>): MavenArchetype? {
return versions.maxBy { MavenVersionComparable(it.version) }
}
private fun mavenSearchUrl(group: String, artifactId: String? = null, version: String? = null, packaging: String? = null, rowsLimit: Int = 20): String {
val q = listOf(
@@ -39,7 +39,8 @@ class KotlinMavenArchetypesProviderTest {
assertEquals(
listOf(
MavenArchetype("org.jetbrains.kotlin", "kotlin-archetype-jvm", "1.0.1-2", null, null)
MavenArchetype("org.jetbrains.kotlin", "kotlin-archetype-jvm", "1.0.1-2", null, null),
MavenArchetype("org.jetbrains.kotlin", "kotlin-archetype-js", "1.0.0", null, null)
).sortedBy { it.artifactId + "." + it.version },
versions.sortedBy { it.artifactId + "." + it.version }
)