From d5e66156b97c5d7086f11a4e7557d3b0e0a39cc3 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 23 Jun 2022 11:37:37 +0800 Subject: [PATCH] =?UTF-8?q?perf(config):=20=E4=BC=98=E5=8C=96=20Artifact?= =?UTF-8?q?=20=E7=9A=84=E5=BA=8F=E5=88=97=E5=8C=96=E8=BF=87=E7=A8=8B.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AbstractArtifact 已经有官方的 toString 实现了, 故不再多此一举. 同时, 如果有不基于 AbstractArtifact 的 Artifact 实现, 将会转换成 DefaultArtifact 并直接使用 toString. --- .../src/main/kotlin/serializer/Serializer.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scalabot-meta/src/main/kotlin/serializer/Serializer.kt b/scalabot-meta/src/main/kotlin/serializer/Serializer.kt index ab6de86..37571af 100644 --- a/scalabot-meta/src/main/kotlin/serializer/Serializer.kt +++ b/scalabot-meta/src/main/kotlin/serializer/Serializer.kt @@ -4,6 +4,7 @@ import com.google.gson.* import net.lamgc.scalabot.config.MavenRepositoryConfig import net.lamgc.scalabot.config.ProxyType import net.lamgc.scalabot.config.UsernameAuthenticator +import org.eclipse.aether.artifact.AbstractArtifact import org.eclipse.aether.artifact.Artifact import org.eclipse.aether.artifact.DefaultArtifact import org.eclipse.aether.repository.Authentication @@ -45,14 +46,19 @@ object ProxyTypeSerializer : JsonDeserializer, object ArtifactSerializer : JsonSerializer, JsonDeserializer { override fun serialize(src: Artifact, typeOfSrc: Type?, context: JsonSerializationContext?): JsonElement { - val gavBuilder = StringBuilder("${src.groupId}:${src.artifactId}") - if (!src.extension.equals("jar")) { - gavBuilder.append(':').append(src.extension) + return if (src is AbstractArtifact) { + JsonPrimitive(src.toString()) + } else { + JsonPrimitive( + DefaultArtifact( + src.groupId, + src.artifactId, + src.classifier, + src.extension, + src.version + ).toString() + ) } - if (src.classifier.isNotEmpty()) { - gavBuilder.append(':').append(src.classifier) - } - return JsonPrimitive(gavBuilder.append(':').append(src.version).toString()) } override fun deserialize(json: JsonElement, typeOfT: Type?, context: JsonDeserializationContext?): Artifact {