mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
refactor(config): 使用 URL 生成缺省仓库 Id.
在使用过程中, 发现 Aether 会根据仓库 Id 保存一些元信息, 所以尝试以 URL 生成仓库 Id, 或许有利于 Aether 存取仓库元信息. 改动仍需观望.
This commit is contained in:
parent
580d9122e5
commit
2a08f28838
@ -1,6 +1,7 @@
|
||||
package net.lamgc.scalabot
|
||||
|
||||
import ch.qos.logback.core.PropertyDefinerBase
|
||||
import com.google.common.net.InternetDomainName
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import com.google.gson.JsonArray
|
||||
@ -15,6 +16,7 @@ import org.eclipse.aether.repository.RepositoryPolicy
|
||||
import org.telegram.telegrambots.bots.DefaultBotOptions
|
||||
import java.io.File
|
||||
import java.net.URL
|
||||
import java.net.URLEncoder
|
||||
import java.nio.charset.StandardCharsets
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.function.Supplier
|
||||
@ -43,7 +45,7 @@ internal fun ProxyConfig.toAetherProxy(): Proxy? {
|
||||
|
||||
internal fun MavenRepositoryConfig.toRemoteRepository(proxyConfig: ProxyConfig? = null): RemoteRepository {
|
||||
val repositoryId = if (id == null) {
|
||||
val generatedRepoId = createDefaultRepositoryId()
|
||||
val generatedRepoId = createDefaultRepositoryId(url)
|
||||
log.debug { "仓库 Url `$url` 未设置仓库 Id, 已分配缺省 Id: $generatedRepoId" }
|
||||
generatedRepoId
|
||||
} else {
|
||||
@ -91,10 +93,11 @@ private fun checkRepositoryLayout(layoutType: String): String {
|
||||
return type
|
||||
}
|
||||
|
||||
private val repoNumberGenerator = AtomicInteger(1)
|
||||
|
||||
private fun createDefaultRepositoryId(): String {
|
||||
return "Repository-${repoNumberGenerator.getAndIncrement()}"
|
||||
private fun createDefaultRepositoryId(url: URL): String {
|
||||
val topPrivateDomain = InternetDomainName.from(url.host).topPrivateDomain().toString()
|
||||
return "Repository-${URLEncoder.encode(topPrivateDomain, StandardCharsets.UTF_8)}-${
|
||||
url.toString().hashCode().toString(16)
|
||||
}"
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user