mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 16:28:12 -07:00
Refactor some proxy code.
/cc @dmitry-zhuravlev
This commit is contained in:
parent
80066df24e
commit
9ecc603c24
5 changed files with 18 additions and 28 deletions
|
@ -5,7 +5,9 @@ import com.beust.kobalt.api.Kobalt
|
||||||
import com.beust.kobalt.api.annotation.Directive
|
import com.beust.kobalt.api.annotation.Directive
|
||||||
import com.beust.kobalt.maven.DependencyManager
|
import com.beust.kobalt.maven.DependencyManager
|
||||||
import com.beust.kobalt.maven.dependency.FileDependency
|
import com.beust.kobalt.maven.dependency.FileDependency
|
||||||
|
import org.eclipse.aether.repository.Proxy
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.net.InetSocketAddress
|
||||||
|
|
||||||
@Directive
|
@Directive
|
||||||
fun homeDir(vararg dirs: String) : String = SystemProperties.homeDir +
|
fun homeDir(vararg dirs: String) : String = SystemProperties.homeDir +
|
||||||
|
@ -30,7 +32,11 @@ fun plugins(vararg dependencies : String) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data class ProxyConfig(var host: String = "", var port: Int = 0, val type: String = "")
|
data class ProxyConfig(var host: String = "", var port: Int = 0, val type: String = "") {
|
||||||
|
fun toProxy() = java.net.Proxy(java.net.Proxy.Type.HTTP, InetSocketAddress(host, port))
|
||||||
|
|
||||||
|
fun toAetherProxy() = Proxy(type, host, port) // TODO make support for proxy auth
|
||||||
|
}
|
||||||
|
|
||||||
data class HostConfig(var url: String = "", var username: String? = null, var password: String? = null) {
|
data class HostConfig(var url: String = "", var username: String? = null, var password: String? = null) {
|
||||||
fun hasAuth() : Boolean {
|
fun hasAuth() : Boolean {
|
||||||
|
|
|
@ -6,10 +6,8 @@ import com.beust.kobalt.misc.KFiles
|
||||||
import com.beust.kobalt.misc.log
|
import com.beust.kobalt.misc.log
|
||||||
import com.google.inject.Inject
|
import com.google.inject.Inject
|
||||||
import com.google.inject.Singleton
|
import com.google.inject.Singleton
|
||||||
import org.eclipse.aether.repository.Proxy
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
import java.net.InetSocketAddress
|
|
||||||
import javax.xml.bind.JAXBContext
|
import javax.xml.bind.JAXBContext
|
||||||
import javax.xml.bind.annotation.XmlElement
|
import javax.xml.bind.annotation.XmlElement
|
||||||
import javax.xml.bind.annotation.XmlRootElement
|
import javax.xml.bind.annotation.XmlRootElement
|
||||||
|
@ -63,23 +61,18 @@ class KobaltSettings @Inject constructor(val xmlFile: KobaltSettingsXml) {
|
||||||
|
|
||||||
val defaultRepos = xmlFile.defaultRepos?.repo
|
val defaultRepos = xmlFile.defaultRepos?.repo
|
||||||
|
|
||||||
val proxy = xmlFile.proxy
|
val proxyConfig = with(xmlFile.proxy) {
|
||||||
|
fun toIntOr(s: String, defaultValue: Int) = try { //TODO can be extracted to some global Utils
|
||||||
|
s.toInt()
|
||||||
|
} catch(e: NumberFormatException) {
|
||||||
|
defaultValue
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
val proxyConfig = with(proxy) {
|
|
||||||
if (this != null) {
|
if (this != null) {
|
||||||
com.beust.kobalt.ProxyConfig(host, port.toIntOr(0), type)
|
ProxyConfig(host, toIntOr(port, 0), type)
|
||||||
} else null
|
} else null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.toIntOr(defaultValue: Int) = try { //TODO can be extracted to some global Utils
|
|
||||||
toInt()
|
|
||||||
} catch(e: NumberFormatException) {
|
|
||||||
defaultValue
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var kobaltCompilerVersion = xmlFile.kobaltCompilerVersion
|
var kobaltCompilerVersion = xmlFile.kobaltCompilerVersion
|
||||||
var kobaltCompilerRepo = xmlFile.kobaltCompilerRepo
|
var kobaltCompilerRepo = xmlFile.kobaltCompilerRepo
|
||||||
|
|
||||||
|
@ -104,9 +97,3 @@ class KobaltSettings @Inject constructor(val xmlFile: KobaltSettingsXml) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ProxyConfig?.toProxy() = if (this != null) {
|
|
||||||
java.net.Proxy(java.net.Proxy.Type.HTTP, InetSocketAddress(host, port))
|
|
||||||
} else null
|
|
||||||
|
|
||||||
fun ProxyConfig?.toAetherProxy() = if (this != null) Proxy(type, host, port) else null //TODO make support for proxy auth
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.beust.kobalt.maven
|
||||||
|
|
||||||
import com.beust.kobalt.KobaltException
|
import com.beust.kobalt.KobaltException
|
||||||
import com.beust.kobalt.internal.KobaltSettings
|
import com.beust.kobalt.internal.KobaltSettings
|
||||||
import com.beust.kobalt.internal.toProxy
|
|
||||||
import com.beust.kobalt.misc.CountingFileRequestBody
|
import com.beust.kobalt.misc.CountingFileRequestBody
|
||||||
import com.beust.kobalt.misc.log
|
import com.beust.kobalt.misc.log
|
||||||
import com.google.inject.Inject
|
import com.google.inject.Inject
|
||||||
|
@ -22,7 +21,7 @@ class Http @Inject constructor(val settings:KobaltSettings) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun get(user: String?, password: String?, url: String) : Response {
|
fun get(user: String?, password: String?, url: String) : Response {
|
||||||
val client = OkHttpClient.Builder().proxy(settings.proxyConfig.toProxy()).build()
|
val client = OkHttpClient.Builder().proxy(settings.proxyConfig?.toProxy()).build()
|
||||||
val request = Request.Builder().url(url)
|
val request = Request.Builder().url(url)
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
request.header("Authorization", Credentials.basic(user, password))
|
request.header("Authorization", Credentials.basic(user, password))
|
||||||
|
@ -76,7 +75,7 @@ class Http @Inject constructor(val settings:KobaltSettings) {
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
log(2, "Uploading $file to $url")
|
log(2, "Uploading $file to $url")
|
||||||
val response = OkHttpClient.Builder().proxy(settings.proxyConfig.toProxy()).build().newCall(request).execute()
|
val response = OkHttpClient.Builder().proxy(settings.proxyConfig?.toProxy()).build().newCall(request).execute()
|
||||||
if (! response.isSuccessful) {
|
if (! response.isSuccessful) {
|
||||||
error(response)
|
error(response)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -6,7 +6,6 @@ import com.beust.kobalt.api.Kobalt
|
||||||
import com.beust.kobalt.homeDir
|
import com.beust.kobalt.homeDir
|
||||||
import com.beust.kobalt.internal.KobaltSettings
|
import com.beust.kobalt.internal.KobaltSettings
|
||||||
import com.beust.kobalt.internal.KobaltSettingsXml
|
import com.beust.kobalt.internal.KobaltSettingsXml
|
||||||
import com.beust.kobalt.internal.toAetherProxy
|
|
||||||
import com.beust.kobalt.maven.CompletedFuture
|
import com.beust.kobalt.maven.CompletedFuture
|
||||||
import com.beust.kobalt.maven.MavenId
|
import com.beust.kobalt.maven.MavenId
|
||||||
import com.beust.kobalt.misc.KobaltLogger
|
import com.beust.kobalt.misc.KobaltLogger
|
||||||
|
@ -81,7 +80,7 @@ class Aether(val localRepo: File, val settings: KobaltSettings) {
|
||||||
private val kobaltRepositories : List<RemoteRepository>
|
private val kobaltRepositories : List<RemoteRepository>
|
||||||
get() = Kobalt.repos.map {
|
get() = Kobalt.repos.map {
|
||||||
RemoteRepository.Builder("maven", "default", it.url)
|
RemoteRepository.Builder("maven", "default", it.url)
|
||||||
.setProxy(settings.proxyConfig.toAetherProxy())
|
.setProxy(settings.proxyConfig?.toAetherProxy())
|
||||||
// .setSnapshotPolicy(RepositoryPolicy(false, null, null))
|
// .setSnapshotPolicy(RepositoryPolicy(false, null, null))
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.beust.kobalt.misc
|
||||||
import com.beust.kobalt.KobaltException
|
import com.beust.kobalt.KobaltException
|
||||||
import com.beust.kobalt.internal.DocUrl
|
import com.beust.kobalt.internal.DocUrl
|
||||||
import com.beust.kobalt.internal.KobaltSettings
|
import com.beust.kobalt.internal.KobaltSettings
|
||||||
import com.beust.kobalt.internal.toProxy
|
|
||||||
import com.beust.kobalt.maven.Http
|
import com.beust.kobalt.maven.Http
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
|
@ -60,7 +59,7 @@ class GithubApi2 @Inject constructor(
|
||||||
// Read only Api
|
// Read only Api
|
||||||
//
|
//
|
||||||
private val service = Retrofit.Builder()
|
private val service = Retrofit.Builder()
|
||||||
.client(OkHttpClient.Builder().proxy(settings.proxyConfig.toProxy()).build())
|
.client(OkHttpClient.Builder().proxy(settings.proxyConfig?.toProxy()).build())
|
||||||
.baseUrl("https://api.github.com")
|
.baseUrl("https://api.github.com")
|
||||||
.addConverterFactory(GsonConverterFactory.create())
|
.addConverterFactory(GsonConverterFactory.create())
|
||||||
.build()
|
.build()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue