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
|
package net.lamgc.scalabot
|
||||||
|
|
||||||
import ch.qos.logback.core.PropertyDefinerBase
|
import ch.qos.logback.core.PropertyDefinerBase
|
||||||
|
import com.google.common.net.InternetDomainName
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
import com.google.gson.JsonArray
|
import com.google.gson.JsonArray
|
||||||
@ -15,6 +16,7 @@ import org.eclipse.aether.repository.RepositoryPolicy
|
|||||||
import org.telegram.telegrambots.bots.DefaultBotOptions
|
import org.telegram.telegrambots.bots.DefaultBotOptions
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
|
import java.net.URLEncoder
|
||||||
import java.nio.charset.StandardCharsets
|
import java.nio.charset.StandardCharsets
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import java.util.function.Supplier
|
import java.util.function.Supplier
|
||||||
@ -43,7 +45,7 @@ internal fun ProxyConfig.toAetherProxy(): Proxy? {
|
|||||||
|
|
||||||
internal fun MavenRepositoryConfig.toRemoteRepository(proxyConfig: ProxyConfig? = null): RemoteRepository {
|
internal fun MavenRepositoryConfig.toRemoteRepository(proxyConfig: ProxyConfig? = null): RemoteRepository {
|
||||||
val repositoryId = if (id == null) {
|
val repositoryId = if (id == null) {
|
||||||
val generatedRepoId = createDefaultRepositoryId()
|
val generatedRepoId = createDefaultRepositoryId(url)
|
||||||
log.debug { "仓库 Url `$url` 未设置仓库 Id, 已分配缺省 Id: $generatedRepoId" }
|
log.debug { "仓库 Url `$url` 未设置仓库 Id, 已分配缺省 Id: $generatedRepoId" }
|
||||||
generatedRepoId
|
generatedRepoId
|
||||||
} else {
|
} else {
|
||||||
@ -91,10 +93,11 @@ private fun checkRepositoryLayout(layoutType: String): String {
|
|||||||
return type
|
return type
|
||||||
}
|
}
|
||||||
|
|
||||||
private val repoNumberGenerator = AtomicInteger(1)
|
private fun createDefaultRepositoryId(url: URL): String {
|
||||||
|
val topPrivateDomain = InternetDomainName.from(url.host).topPrivateDomain().toString()
|
||||||
private fun createDefaultRepositoryId(): String {
|
return "Repository-${URLEncoder.encode(topPrivateDomain, StandardCharsets.UTF_8)}-${
|
||||||
return "Repository-${repoNumberGenerator.getAndIncrement()}"
|
url.toString().hashCode().toString(16)
|
||||||
|
}"
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user