mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
perf(config): 优化 Artifact 的序列化过程.
AbstractArtifact 已经有官方的 toString 实现了, 故不再多此一举. 同时, 如果有不基于 AbstractArtifact 的 Artifact 实现, 将会转换成 DefaultArtifact 并直接使用 toString.
This commit is contained in:
parent
8a33448b19
commit
d5e66156b9
@ -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<ProxyType>,
|
||||
|
||||
object ArtifactSerializer : JsonSerializer<Artifact>, JsonDeserializer<Artifact> {
|
||||
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 {
|
||||
|
Loading…
Reference in New Issue
Block a user