From 40305af8b176dc1cc3243381fb1e695d713d1b36 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Tue, 29 Mar 2016 22:53:29 -0800 Subject: [PATCH] Improve IClasspathDependency. --- .../com/beust/kobalt/api/IClasspathDependency.kt | 3 +++ .../main/kotlin/com/beust/kobalt/maven/MavenId.kt | 14 ++++---------- .../kotlin/com/beust/kobalt/maven/aether/Aether.kt | 2 ++ .../kobalt/maven/dependency/FileDependency.kt | 2 ++ 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt index cb10caf6..80d9e998 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt @@ -19,6 +19,9 @@ interface IClasspathDependency { /** Version for this identifier */ val version: String + /** @return true if this dependency represents a Maven coordinate */ + val isMaven: Boolean + /** Absolute path to the jar file on the local file system */ val jarFile: Future diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/MavenId.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/MavenId.kt index 3a55b528..e80d5925 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/MavenId.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/MavenId.kt @@ -21,14 +21,6 @@ class MavenId private constructor(val groupId: String, val artifactId: String, v size == 3 || size == 4 } - private fun isVersion(s: String, id: String): Boolean { - try { - return s[0] == 'v' || Character.isDigit(s[0]) || isRangedVersion(s) - } catch(ex: Exception) { - error("Illegal version found in id \"$id\"") - } - } - fun isRangedVersion(s: String): Boolean { return s.first() in listOf('[', '(') && s.last() in listOf(']', ')') } @@ -41,6 +33,7 @@ class MavenId private constructor(val groupId: String, val artifactId: String, v } fun toKobaltId(id: String) = if (id.endsWith(":")) id + "(0,]" else id + /** * The main entry point to create Maven Id's. Id's created by this function * will run through IMavenIdInterceptors. @@ -62,8 +55,9 @@ class MavenId private constructor(val groupId: String, val artifactId: String, v create(toId(groupId, artifactId, packaging, version)) fun toId(groupId: String, artifactId: String, packaging: String? = null, version: String?) = - "$groupId:$artifactId:$version" + - (if (packaging != null && packaging != "") "@$packaging" else "") + "$groupId:$artifactId" + + (if (packaging != null && packaging != "") ":$packaging" else "") + + ":$version" } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt index adaf5dd7..7952275f 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt @@ -186,6 +186,8 @@ class AetherDependency(val artifact: Artifact): IClasspathDependency, Comparable override val version: String = artifact.version + override val isMaven = true + private fun toId(a: Artifact) = with(a) { groupId + ":" + artifactId + ":" + version } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt index ee5fdf59..691c5760 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt @@ -14,6 +14,8 @@ open public class FileDependency(open val fileName: String) : IClasspathDependen override val version = "0.0" + override val isMaven = false + override val jarFile = CompletedFuture(File(fileName)) override fun toMavenDependencies(): Dependency {