IJPL-158477 build script downloader — TLS 1.3 support (use okhttp)

GitOrigin-RevId: 17d3579ebae6b6b0a9e4164c2d4ccc3470ca931e
This commit is contained in:
Vladimir Krivosheev
2024-07-12 10:45:46 +02:00
committed by intellij-monorepo-bot
parent f000152138
commit 494215066e
12 changed files with 160 additions and 60 deletions

62
.idea/libraries/ktor_client_core.xml generated Normal file
View File

@@ -0,0 +1,62 @@
<component name="libraryTable">
<library name="ktor-client-core" type="repository">
<properties maven-id="io.ktor:ktor-client-core-jvm:2.3.12">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-client-core-jvm/2.3.12/ktor-client-core-jvm-2.3.12.jar">
<sha256sum>b407a81d92e6cd41f92c150f1fd3060d5fca3491ce02afb7f713424404081c7a</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-http-jvm/2.3.12/ktor-http-jvm-2.3.12.jar">
<sha256sum>907111c439b3bd4433d2debb687920d5f8df8c6229b68ed540805d5e3763b6a8</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-utils-jvm/2.3.12/ktor-utils-jvm-2.3.12.jar">
<sha256sum>6a72d6867330065ed461952fff19ea55ba844352f748cec1872f5bc7b21efc02</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-io-jvm/2.3.12/ktor-io-jvm-2.3.12.jar">
<sha256sum>1d93a45665f6744ff96cd7b97a45fb85ffec725b63bcc327d33a26a1c7e05fbd</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-events-jvm/2.3.12/ktor-events-jvm-2.3.12.jar">
<sha256sum>44f0b1de6b0947182d25408d1101c56cf8c01a7b809ee0152bd81d9adc9aa576</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-websocket-serialization-jvm/2.3.12/ktor-websocket-serialization-jvm-2.3.12.jar">
<sha256sum>bff890d7ab6171551ae4f0632e9aeccb9048df31d6d73cf50abd5b330080ad3a</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-serialization-jvm/2.3.12/ktor-serialization-jvm-2.3.12.jar">
<sha256sum>0e05534fbc3b0941127b6ef39e705c34c367dae8b0a08290701c60e97e88fa72</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-websockets-jvm/2.3.12/ktor-websockets-jvm-2.3.12.jar">
<sha256sum>dc35cc539f4dfa5a4ad9b391c14d06527dfac4f64b3e3f050f5143ceb215bca4</sha256sum>
</artifact>
</verification>
<exclude>
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk7" />
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8" />
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-jdk8" />
<dependency maven-id="org.slf4j:slf4j-api" />
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" />
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib-common" />
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-slf4j" />
</exclude>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-core-jvm/2.3.12/ktor-client-core-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-http-jvm/2.3.12/ktor-http-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-utils-jvm/2.3.12/ktor-utils-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-io-jvm/2.3.12/ktor-io-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-events-jvm/2.3.12/ktor-events-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-websocket-serialization-jvm/2.3.12/ktor-websocket-serialization-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-serialization-jvm/2.3.12/ktor-serialization-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-websockets-jvm/2.3.12/ktor-websockets-jvm-2.3.12.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-core-jvm/2.3.12/ktor-client-core-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-http-jvm/2.3.12/ktor-http-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-utils-jvm/2.3.12/ktor-utils-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-io-jvm/2.3.12/ktor-io-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-events-jvm/2.3.12/ktor-events-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-websocket-serialization-jvm/2.3.12/ktor-websocket-serialization-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-serialization-jvm/2.3.12/ktor-serialization-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-websockets-jvm/2.3.12/ktor-websockets-jvm-2.3.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,53 +1,18 @@
<component name="libraryTable"> <component name="libraryTable">
<library name="ktor-client-java" type="repository"> <library name="ktor-client-java" type="repository">
<properties maven-id="io.ktor:ktor-client-java-jvm:2.3.12"> <properties include-transitive-deps="false" maven-id="io.ktor:ktor-client-java-jvm:2.3.12">
<verification> <verification>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-client-java-jvm/2.3.12/ktor-client-java-jvm-2.3.12.jar"> <artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-client-java-jvm/2.3.12/ktor-client-java-jvm-2.3.12.jar">
<sha256sum>580511f2299c1c0ead906fcb4bbdd24cbc8068f027b4c3ad0d8de5e900d8cabd</sha256sum> <sha256sum>580511f2299c1c0ead906fcb4bbdd24cbc8068f027b4c3ad0d8de5e900d8cabd</sha256sum>
</artifact> </artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-client-core-jvm/2.3.12/ktor-client-core-jvm-2.3.12.jar">
<sha256sum>b407a81d92e6cd41f92c150f1fd3060d5fca3491ce02afb7f713424404081c7a</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-http-jvm/2.3.12/ktor-http-jvm-2.3.12.jar">
<sha256sum>907111c439b3bd4433d2debb687920d5f8df8c6229b68ed540805d5e3763b6a8</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-utils-jvm/2.3.12/ktor-utils-jvm-2.3.12.jar">
<sha256sum>6a72d6867330065ed461952fff19ea55ba844352f748cec1872f5bc7b21efc02</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-io-jvm/2.3.12/ktor-io-jvm-2.3.12.jar">
<sha256sum>1d93a45665f6744ff96cd7b97a45fb85ffec725b63bcc327d33a26a1c7e05fbd</sha256sum>
</artifact>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-events-jvm/2.3.12/ktor-events-jvm-2.3.12.jar">
<sha256sum>44f0b1de6b0947182d25408d1101c56cf8c01a7b809ee0152bd81d9adc9aa576</sha256sum>
</artifact>
</verification> </verification>
<exclude>
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk7" />
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8" />
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-jdk8" />
<dependency maven-id="org.slf4j:slf4j-api" />
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm" />
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib-common" />
<dependency maven-id="io.ktor:ktor-websocket-serialization-jvm" />
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-coroutines-slf4j" />
</exclude>
</properties> </properties>
<CLASSES> <CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-java-jvm/2.3.12/ktor-client-java-jvm-2.3.12.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-java-jvm/2.3.12/ktor-client-java-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-core-jvm/2.3.12/ktor-client-core-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-http-jvm/2.3.12/ktor-http-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-utils-jvm/2.3.12/ktor-utils-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-io-jvm/2.3.12/ktor-io-jvm-2.3.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-events-jvm/2.3.12/ktor-events-jvm-2.3.12.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES> <SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-java-jvm/2.3.12/ktor-client-java-jvm-2.3.12-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-java-jvm/2.3.12/ktor-client-java-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-core-jvm/2.3.12/ktor-client-core-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-http-jvm/2.3.12/ktor-http-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-utils-jvm/2.3.12/ktor-utils-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-io-jvm/2.3.12/ktor-io-jvm-2.3.12-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-events-jvm/2.3.12/ktor-events-jvm-2.3.12-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
</component> </component>

18
.idea/libraries/ktor_client_okhttp.xml generated Normal file
View File

@@ -0,0 +1,18 @@
<component name="libraryTable">
<library name="ktor-client-okhttp" type="repository">
<properties include-transitive-deps="false" maven-id="io.ktor:ktor-client-okhttp-jvm:2.3.12">
<verification>
<artifact url="file://$MAVEN_REPOSITORY$/io/ktor/ktor-client-okhttp-jvm/2.3.12/ktor-client-okhttp-jvm-2.3.12.jar">
<sha256sum>31f4d9cfb02da8d874f050c9841b2cb31e535f9b13a9797af4799d5b0356d10a</sha256sum>
</artifact>
</verification>
</properties>
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-okhttp-jvm/2.3.12/ktor-client-okhttp-jvm-2.3.12.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/ktor/ktor-client-okhttp-jvm/2.3.12/ktor-client-okhttp-jvm-2.3.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -7,6 +7,7 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="ktor-client-core" level="project" />
<orderEntry type="library" exported="" name="ktor-client-java" level="project" /> <orderEntry type="library" exported="" name="ktor-client-java" level="project" />
<orderEntry type="library" exported="" name="ktor-client-encoding" level="project" /> <orderEntry type="library" exported="" name="ktor-client-encoding" level="project" />
<orderEntry type="library" exported="" name="ktor-client-content-negotiation" level="project" /> <orderEntry type="library" exported="" name="ktor-client-content-negotiation" level="project" />

View File

@@ -36,6 +36,8 @@
<orderEntry type="library" name="opentelemetry" level="project" /> <orderEntry type="library" name="opentelemetry" level="project" />
<orderEntry type="library" name="opentelemetry-semconv" level="project" /> <orderEntry type="library" name="opentelemetry-semconv" level="project" />
<orderEntry type="library" name="opentelemetry-extension-kotlin" level="project" /> <orderEntry type="library" name="opentelemetry-extension-kotlin" level="project" />
<orderEntry type="library" name="ktor-client-java" level="project" /> <orderEntry type="library" name="ktor-client-okhttp" level="project" />
<orderEntry type="library" name="okhttp" level="project" />
<orderEntry type="library" name="ktor-client-core" level="project" />
</component> </component>
</module> </module>

View File

@@ -5,7 +5,7 @@ package org.jetbrains.intellij.build
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.HttpClientConfig import io.ktor.client.HttpClientConfig
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.engine.java.Java import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.HttpRequestRetry import io.ktor.client.plugins.HttpRequestRetry
import io.ktor.client.plugins.HttpTimeout import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.UserAgent import io.ktor.client.plugins.UserAgent
@@ -23,8 +23,10 @@ import io.ktor.client.statement.HttpResponse
import io.ktor.client.statement.bodyAsChannel import io.ktor.client.statement.bodyAsChannel
import io.ktor.client.statement.bodyAsText import io.ktor.client.statement.bodyAsText
import io.ktor.http.HttpHeaders import io.ktor.http.HttpHeaders
import io.ktor.util.read
import io.ktor.utils.io.*
import io.ktor.utils.io.core.use import io.ktor.utils.io.core.use
import io.ktor.utils.io.nio.writePacket import io.ktor.utils.io.jvm.nio.copyTo
import io.opentelemetry.api.common.AttributeKey import io.opentelemetry.api.common.AttributeKey
import io.opentelemetry.api.common.Attributes import io.opentelemetry.api.common.Attributes
import io.opentelemetry.api.trace.Span import io.opentelemetry.api.trace.Span
@@ -32,9 +34,7 @@ import io.opentelemetry.api.trace.SpanBuilder
import io.opentelemetry.api.trace.StatusCode import io.opentelemetry.api.trace.StatusCode
import io.opentelemetry.context.Context import io.opentelemetry.context.Context
import io.opentelemetry.extension.kotlin.asContextElement import io.opentelemetry.extension.kotlin.asContextElement
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.*
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.jetbrains.intellij.build.dependencies.BuildDependenciesCommunityRoot import org.jetbrains.intellij.build.dependencies.BuildDependenciesCommunityRoot
import org.jetbrains.intellij.build.dependencies.BuildDependenciesDownloader import org.jetbrains.intellij.build.dependencies.BuildDependenciesDownloader
import org.jetbrains.intellij.build.dependencies.BuildDependenciesDownloader.Credentials import org.jetbrains.intellij.build.dependencies.BuildDependenciesDownloader.Credentials
@@ -56,9 +56,13 @@ const val SPACE_REPO_HOST: String = "packages.jetbrains.team"
private val httpClient = SynchronizedClearableLazy { private val httpClient = SynchronizedClearableLazy {
// HttpTimeout is not used - CIO engine handles that // HttpTimeout is not used - CIO engine handles that
HttpClient(Java) { HttpClient(OkHttp) {
expectSuccess = true expectSuccess = true
engine {
clientCacheSize = 0
}
install(HttpTimeout) { install(HttpTimeout) {
requestTimeoutMillis = 2.hours.inWholeMilliseconds requestTimeoutMillis = 2.hours.inWholeMilliseconds
} }
@@ -345,15 +349,44 @@ suspend fun downloadFileWithoutCaching(url: String, tempFile: Path) {
} }
private suspend fun doDownloadFileWithoutCaching(client: HttpClient, url: String, file: Path): HttpResponse { private suspend fun doDownloadFileWithoutCaching(client: HttpClient, url: String, file: Path): HttpResponse {
return client.prepareGet(url).execute { httpResponse -> return client.prepareGet(url).execute {
val channel = httpResponse.bodyAsChannel() coroutineScope {
FileChannel.open(file, WRITE_OPERATION).use { fileChannel -> it.bodyAsChannel().copyAndClose(writeChannel(file))
while (!channel.isClosedForRead) {
check(fileChannel.writePacket(channel.readRemaining(DEFAULT_BUFFER_SIZE.toLong())))
}
} }
httpResponse it
} }
} }
private val WRITE_OPERATION = EnumSet.of(StandardOpenOption.WRITE, StandardOpenOption.CREATE) fun CoroutineScope.readChannel(file: Path): ByteReadChannel {
return writer(CoroutineName("file-reader") + Dispatchers.IO, autoFlush = false) {
FileChannel.open(file, StandardOpenOption.READ).use { fileChannel ->
@Suppress("DEPRECATION")
channel.writeSuspendSession {
while (true) {
val buffer = request(1)
if (buffer == null) {
channel.flush()
tryAwait(1)
continue
}
val rc = fileChannel.read(buffer)
if (rc == -1) {
break
}
written(rc)
}
}
}
}.channel
}
private val WRITE_NEW_OPERATION = EnumSet.of(StandardOpenOption.WRITE, StandardOpenOption.CREATE_NEW)
private fun CoroutineScope.writeChannel(file: Path): ByteWriteChannel {
return reader(CoroutineName("file-writer") + Dispatchers.IO, autoFlush = true) {
FileChannel.open(file, WRITE_NEW_OPERATION).use { fileChannel ->
channel.copyTo(fileChannel)
}
}.channel
}

View File

@@ -238,6 +238,6 @@
<orderEntry type="library" name="ion" level="project" /> <orderEntry type="library" name="ion" level="project" />
<orderEntry type="module" module-name="intellij.platform.boot" /> <orderEntry type="module" module-name="intellij.platform.boot" />
<orderEntry type="module" module-name="intellij.platform.ijent.community.buildConstants" /> <orderEntry type="module" module-name="intellij.platform.ijent.community.buildConstants" />
<orderEntry type="library" name="ktor-client-java" level="project" /> <orderEntry type="library" name="ktor-client-core" level="project" />
</component> </component>
</module> </module>

View File

@@ -593,7 +593,7 @@ object CommunityLibraryLicenses {
.suppliedByOrganizations("Thai Open Source Software Center Ltd"), .suppliedByOrganizations("Thai Open Source Software Center Ltd"),
LibraryLicense(name = "JNA", libraryName = "jna", license = "LGPL 2.1", LibraryLicense(name = "JNA", libraryName = "jna", license = "LGPL 2.1",
url = "https://github.com/java-native-access/jna", url = "https://github.com/java-native-access/jna",
licenseUrl = "https://www.opensource.org/licenses/lgpl-2.1.php"), licenseUrl = "https://github.com/java-native-access/jna/blob/master/LICENSE"),
LibraryLicense(name = "Joni", libraryName = "joni", url = "https://github.com/jruby/joni") LibraryLicense(name = "Joni", libraryName = "joni", url = "https://github.com/jruby/joni")
.mit("https://github.com/jruby/joni/blob/master/LICENSE"), .mit("https://github.com/jruby/joni/blob/master/LICENSE"),
LibraryLicense(name = "jps-javac-extension", libraryName = "jps-javac-extension", LibraryLicense(name = "jps-javac-extension", libraryName = "jps-javac-extension",
@@ -618,8 +618,8 @@ object CommunityLibraryLicenses {
LibraryLicense(name = "JSON Schema (schema07.json)", attachedTo = "intellij.json", version = "draft-07", LibraryLicense(name = "JSON Schema (schema07.json)", attachedTo = "intellij.json", version = "draft-07",
url = "https://json-schema.org/draft-07/schema#").simplifiedBsd(), url = "https://json-schema.org/draft-07/schema#").simplifiedBsd(),
LibraryLicense(libraryName = "jsoup", url = "https://jsoup.org").mit("https://jsoup.org/license"), LibraryLicense(libraryName = "jsoup", url = "https://jsoup.org").mit("https://jsoup.org/license"),
LibraryLicense(libraryName = "jsr305", url = "https://code.google.com/p/jsr-305/") LibraryLicense(libraryName = "jsr305", url = "https://github.com/amaembo/jsr-305")
.newBsd("https://opensource.org/license/bsd-3-clause/") .newBsd("https://github.com/amaembo/jsr-305/blob/master/ri/LICENSE")
.suppliedByOrganizations("JSR305 expert group"), .suppliedByOrganizations("JSR305 expert group"),
LibraryLicense(libraryName = "jsvg", url = "https://github.com/weisJ/jsvg").mit("https://github.com/weisJ/jsvg/blob/master/LICENSE") LibraryLicense(libraryName = "jsvg", url = "https://github.com/weisJ/jsvg").mit("https://github.com/weisJ/jsvg/blob/master/LICENSE")
.suppliedByPersons("Jannis Weis"), .suppliedByPersons("Jannis Weis"),
@@ -698,6 +698,7 @@ object CommunityLibraryLicenses {
url = "https://github.com/EsotericSoftware/kryo") url = "https://github.com/EsotericSoftware/kryo")
.newBsd("https://github.com/EsotericSoftware/kryo/blob/master/LICENSE.md") .newBsd("https://github.com/EsotericSoftware/kryo/blob/master/LICENSE.md")
.suppliedByPersons("Nathan Sweet"), .suppliedByPersons("Nathan Sweet"),
LibraryLicense(libraryName = "ktor-client-auth", LibraryLicense(libraryName = "ktor-client-auth",
url = "https://github.com/ktorio/ktor") url = "https://github.com/ktorio/ktor")
.apache("https://github.com/ktorio/ktor/blob/main/LICENSE") .apache("https://github.com/ktorio/ktor/blob/main/LICENSE")
@@ -732,10 +733,22 @@ object CommunityLibraryLicenses {
url = "https://github.com/ktorio/ktor") url = "https://github.com/ktorio/ktor")
.apache("https://github.com/ktorio/ktor/blob/main/LICENSE") .apache("https://github.com/ktorio/ktor/blob/main/LICENSE")
.suppliedByOrganizations(Suppliers.JETBRAINS), .suppliedByOrganizations(Suppliers.JETBRAINS),
LibraryLicense(name = "ktor.io TLS", libraryName = "ktor-network-tls", LibraryLicense(name = "ktor.io TLS", libraryName = "ktor-network-tls",
url = "https://github.com/ktorio/ktor") url = "https://github.com/ktorio/ktor")
.apache("https://github.com/ktorio/ktor/blob/main/LICENSE") .apache("https://github.com/ktorio/ktor/blob/main/LICENSE")
.suppliedByOrganizations(Suppliers.JETBRAINS), .suppliedByOrganizations(Suppliers.JETBRAINS),
LibraryLicense(name = "Ktor Client Core",
libraryName = "ktor-client-core",
url = "https://github.com/ktorio/ktor/tree/main/ktor-client/ktor-client-core")
.apache("https://github.com/ktorio/ktor/blob/main/LICENSE").suppliedByOrganizations(Suppliers.JETBRAINS),
LibraryLicense(name = "Ktor Client OkHttp",
libraryName = "ktor-client-okhttp",
url = "https://github.com/ktorio/ktor/tree/main/ktor-client/ktor-client-okhttp")
.apache("https://github.com/ktorio/ktor/blob/main/LICENSE").suppliedByOrganizations(Suppliers.JETBRAINS),
LibraryLicense(name = "kXML2", libraryName = "kxml2", url = "https://sourceforge.net/projects/kxml/").simplifiedBsd(), LibraryLicense(name = "kXML2", libraryName = "kxml2", url = "https://sourceforge.net/projects/kxml/").simplifiedBsd(),
LibraryLicense(name = "Language Tool", libraryName = "org.languagetool:languagetool-core", LibraryLicense(name = "Language Tool", libraryName = "org.languagetool:languagetool-core",
url = "https://github.com/languagetool-org/languagetool", url = "https://github.com/languagetool-org/languagetool",
@@ -1008,7 +1021,7 @@ object CommunityLibraryLicenses {
.apache("https://github.com/amaembo/streamex/blob/master/LICENSE"), .apache("https://github.com/amaembo/streamex/blob/master/LICENSE"),
LibraryLicense(name = "swingx", libraryName = "swingx", license = "LGPL 2.1", LibraryLicense(name = "swingx", libraryName = "swingx", license = "LGPL 2.1",
url = "https://central.sonatype.com/artifact/org.swinglabs/swingx-core/1.6.2-2", url = "https://central.sonatype.com/artifact/org.swinglabs/swingx-core/1.6.2-2",
licenseUrl = "https://www.opensource.org/licenses/lgpl-2.1.php") licenseUrl = "https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html")
.suppliedByOrganizations("Sun Microsystems, Inc."), .suppliedByOrganizations("Sun Microsystems, Inc."),
LibraryLicense(libraryName = "TestNG", url = "https://testng.org/") LibraryLicense(libraryName = "TestNG", url = "https://testng.org/")
.apache("https://github.com/cbeust/testng/blob/master/LICENSE.txt"), .apache("https://github.com/cbeust/testng/blob/master/LICENSE.txt"),

View File

@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
@file:Suppress("ReplaceJavaStaticMethodWithKotlinAnalog") @file:Suppress("ReplaceJavaStaticMethodWithKotlinAnalog", "RedundantSuppression")
package org.jetbrains.intellij.build.impl package org.jetbrains.intellij.build.impl
import com.intellij.openapi.util.JDOMUtil import com.intellij.openapi.util.JDOMUtil
@@ -295,7 +295,7 @@ internal suspend fun createPlatformLayout(projectLibrariesUsedByPlugins: SortedS
) )
// sqlite - used by DB and "import settings" (temporarily) // sqlite - used by DB and "import settings" (temporarily)
layout.alwaysPackToPlugin(listOf("flexmark", "okhttp", "sqlite")) layout.alwaysPackToPlugin(listOf("flexmark", "sqlite"))
for (item in projectLibrariesUsedByPlugins) { for (item in projectLibrariesUsedByPlugins) {
if (!layout.isProjectLibraryExcluded(item.libraryName) && !layout.isLibraryAlwaysPackedIntoPlugin(item.libraryName)) { if (!layout.isProjectLibraryExcluded(item.libraryName) && !layout.isLibraryAlwaysPackedIntoPlugin(item.libraryName)) {
layout.includedProjectLibraries.add(item) layout.includedProjectLibraries.add(item)

View File

@@ -55,6 +55,11 @@
<artifactId>ktor-client-java-jvm</artifactId> <artifactId>ktor-client-java-jvm</artifactId>
<version>2.3.12</version> <version>2.3.12</version>
</dependency> </dependency>
<dependency>
<groupId>io.ktor</groupId>
<artifactId>ktor-client-okhttp-jvm</artifactId>
<version>2.3.12</version>
</dependency>
<dependency> <dependency>
<groupId>io.ktor</groupId> <groupId>io.ktor</groupId>
<artifactId>ktor-client-encoding-jvm</artifactId> <artifactId>ktor-client-encoding-jvm</artifactId>

View File

@@ -93,8 +93,8 @@ public final class ThreadLeakTracker {
"Monitor Ctrl-Break", "Monitor Ctrl-Break",
"Netty ", "Netty ",
"ObjectCleanerThread", "ObjectCleanerThread",
"OkHttp ConnectionPool", // Dockers okhttp3.internal.connection.RealConnectionPool // see okhttp3.ConnectionPool: "this pool holds up to 5 idle connections which will be evicted after 5 minutes of inactivity"
"OkHttp TaskRunner", "OkHttp ",
"Okio Watchdog", // Dockers "okio.AsyncTimeout.Watchdog" "Okio Watchdog", // Dockers "okio.AsyncTimeout.Watchdog"
"Periodic tasks thread", // com.intellij.util.concurrency.AppDelayQueue.TransferThread "Periodic tasks thread", // com.intellij.util.concurrency.AppDelayQueue.TransferThread
"process reaper", // Thread[#46,process reaper(pid7496),10,InnocuousThreadGroup] (since JDK-8279488 part of InnocuousThreadGroup) "process reaper", // Thread[#46,process reaper(pid7496),10,InnocuousThreadGroup] (since JDK-8279488 part of InnocuousThreadGroup)

View File

@@ -26,6 +26,7 @@
<orderEntry type="library" name="kotlin-stdlib" level="project" /> <orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="library" name="kotlinx-coroutines-core" level="project" /> <orderEntry type="library" name="kotlinx-coroutines-core" level="project" />
<orderEntry type="library" name="jetbrains-annotations" level="project" /> <orderEntry type="library" name="jetbrains-annotations" level="project" />
<orderEntry type="library" name="ktor-client-core" level="project" />
<orderEntry type="library" name="ktor-client-java" level="project" /> <orderEntry type="library" name="ktor-client-java" level="project" />
</component> </component>
</module> </module>