mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-30 06:37:29 +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.MavenRepositoryConfig
|
||||||
import net.lamgc.scalabot.config.ProxyType
|
import net.lamgc.scalabot.config.ProxyType
|
||||||
import net.lamgc.scalabot.config.UsernameAuthenticator
|
import net.lamgc.scalabot.config.UsernameAuthenticator
|
||||||
|
import org.eclipse.aether.artifact.AbstractArtifact
|
||||||
import org.eclipse.aether.artifact.Artifact
|
import org.eclipse.aether.artifact.Artifact
|
||||||
import org.eclipse.aether.artifact.DefaultArtifact
|
import org.eclipse.aether.artifact.DefaultArtifact
|
||||||
import org.eclipse.aether.repository.Authentication
|
import org.eclipse.aether.repository.Authentication
|
||||||
@ -45,14 +46,19 @@ object ProxyTypeSerializer : JsonDeserializer<ProxyType>,
|
|||||||
|
|
||||||
object ArtifactSerializer : JsonSerializer<Artifact>, JsonDeserializer<Artifact> {
|
object ArtifactSerializer : JsonSerializer<Artifact>, JsonDeserializer<Artifact> {
|
||||||
override fun serialize(src: Artifact, typeOfSrc: Type?, context: JsonSerializationContext?): JsonElement {
|
override fun serialize(src: Artifact, typeOfSrc: Type?, context: JsonSerializationContext?): JsonElement {
|
||||||
val gavBuilder = StringBuilder("${src.groupId}:${src.artifactId}")
|
return if (src is AbstractArtifact) {
|
||||||
if (!src.extension.equals("jar")) {
|
JsonPrimitive(src.toString())
|
||||||
gavBuilder.append(':').append(src.extension)
|
} 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 {
|
override fun deserialize(json: JsonElement, typeOfT: Type?, context: JsonDeserializationContext?): Artifact {
|
||||||
|
Loading…
Reference in New Issue
Block a user