mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
[PKGS] Update API client to version 3.3.1 (cached) and integrate MVStore
[amper] use PackageSearchApiClientService instead to create a new instance Updated `package-search-api-client` dependency to version 3.3.1. Integrated `MVStore` for in-memory data storage and added new library dependencies. Merge-request: IJ-MR-144502 Merged-by: Fabrizio Scarponi <fscarponi@gmail.com> GitOrigin-RevId: f111fe75fc0e66d35498ed8d92965374a93948a7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
513f3fa1ee
commit
c0f8ad4adb
57
.idea/libraries/package_search_api_client.xml
generated
57
.idea/libraries/package_search_api_client.xml
generated
@@ -1,22 +1,34 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="package-search-api-client" type="repository">
|
<library name="package-search-api-client" type="repository">
|
||||||
<properties maven-id="org.jetbrains.packagesearch:packagesearch-api-client-jvm:3.1.1">
|
<properties maven-id="org.jetbrains.packagesearch:packagesearch-api-client-jvm:3.3.1">
|
||||||
<verification>
|
<verification>
|
||||||
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3.1.1/packagesearch-api-client-jvm-3.1.1.jar">
|
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3.3.1/packagesearch-api-client-jvm-3.3.1.jar">
|
||||||
<sha256sum>15cf65b66dc121308517db68e82d8930d7e227257bdb862ca07f1328515eea6b</sha256sum>
|
<sha256sum>d7e293f78f1be85cec7a1ad3dfec5b5a868074b00a90a8be2438c25660526019</sha256sum>
|
||||||
</artifact>
|
</artifact>
|
||||||
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3.1.1/packagesearch-http-models-jvm-3.1.1.jar">
|
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3.3.1/packagesearch-http-models-jvm-3.3.1.jar">
|
||||||
<sha256sum>d8eeccae53547378ea2d1aaab6efa94d65c4693e3bcdefed13c44b8ce8a52df9</sha256sum>
|
<sha256sum>0318b967115de0c7c8fbd93bc6e3d279c82de2954f90794146962921de45972d</sha256sum>
|
||||||
</artifact>
|
</artifact>
|
||||||
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3.1.1/packagesearch-api-models-jvm-3.1.1.jar">
|
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3.3.1/packagesearch-api-models-jvm-3.3.1.jar">
|
||||||
<sha256sum>eac34c241019a23d3b0a07b4e04888b110aa4c06a826f80de19d2457f6be4b81</sha256sum>
|
<sha256sum>a16f54c2126f9289610438d4f5592cd386113110cb8180ccfbe6999f5b1a3dbf</sha256sum>
|
||||||
</artifact>
|
</artifact>
|
||||||
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3.1.1/packagesearch-version-utils-jvm-3.1.1.jar">
|
<artifact url="file://$MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-mvstore/0.0.4/kotlinx-document-store-mvstore-0.0.4.jar">
|
||||||
<sha256sum>ec7192861556914e6edb5ce0b901848431b03a327a3ca4045c332ab5b3b24ff8</sha256sum>
|
<sha256sum>956a4c7faad66e3471861adaa278d9486f3a050ac25fb6a99ca90809d379adfe</sha256sum>
|
||||||
|
</artifact>
|
||||||
|
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3.3.1/packagesearch-version-utils-jvm-3.3.1.jar">
|
||||||
|
<sha256sum>4c86546693efaeb889e02d043521cda15da5f10853b0471095b7db80dc0540e7</sha256sum>
|
||||||
</artifact>
|
</artifact>
|
||||||
<artifact url="file://$MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4.0.10/krypto-jvm-4.0.10.jar">
|
<artifact url="file://$MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4.0.10/krypto-jvm-4.0.10.jar">
|
||||||
<sha256sum>0fe8dcdf54b13b5ec56fdb5f63c057364264bb2f51b7f7bc3c271d5b1ba68dcb</sha256sum>
|
<sha256sum>0fe8dcdf54b13b5ec56fdb5f63c057364264bb2f51b7f7bc3c271d5b1ba68dcb</sha256sum>
|
||||||
</artifact>
|
</artifact>
|
||||||
|
<artifact url="file://$MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-core-jvm/0.0.4/kotlinx-document-store-core-jvm-0.0.4.jar">
|
||||||
|
<sha256sum>7e638082b4a14e3a96ca90f3f5db70ac65591e0b6c6670629e849d22ec34455f</sha256sum>
|
||||||
|
</artifact>
|
||||||
|
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-core-jvm/0.5.0/kotlinx-io-core-jvm-0.5.0.jar">
|
||||||
|
<sha256sum>f43dd81cf3c7f87abdc80100607b3892a5eb13d87b4d1ceccb7dfb53a68fa4ca</sha256sum>
|
||||||
|
</artifact>
|
||||||
|
<artifact url="file://$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-bytestring-jvm/0.5.0/kotlinx-io-bytestring-jvm-0.5.0.jar">
|
||||||
|
<sha256sum>9b462754c2a574cb7720b16ef1129e6ea76d360d7c84c58684fcab77b17f844d</sha256sum>
|
||||||
|
</artifact>
|
||||||
</verification>
|
</verification>
|
||||||
<exclude>
|
<exclude>
|
||||||
<dependency maven-id="io.ktor:ktor-client-cio-jvm" />
|
<dependency maven-id="io.ktor:ktor-client-cio-jvm" />
|
||||||
@@ -38,22 +50,33 @@
|
|||||||
<dependency maven-id="org.jetbrains:annotations" />
|
<dependency maven-id="org.jetbrains:annotations" />
|
||||||
<dependency maven-id="io.ktor:ktor-serialization-kotlinx-protobuf-jvm" />
|
<dependency maven-id="io.ktor:ktor-serialization-kotlinx-protobuf-jvm" />
|
||||||
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib" />
|
<dependency maven-id="org.jetbrains.kotlin:kotlin-stdlib" />
|
||||||
|
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-serialization-protobuf" />
|
||||||
|
<dependency maven-id="org.jetbrains.kotlinx:kotlinx-serialization-json" />
|
||||||
|
<dependency maven-id="com.h2database:h2" />
|
||||||
</exclude>
|
</exclude>
|
||||||
</properties>
|
</properties>
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3.1.1/packagesearch-api-client-jvm-3.1.1.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3.3.1/packagesearch-api-client-jvm-3.3.1.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3.1.1/packagesearch-http-models-jvm-3.1.1.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3.3.1/packagesearch-http-models-jvm-3.3.1.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3.1.1/packagesearch-api-models-jvm-3.1.1.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3.3.1/packagesearch-api-models-jvm-3.3.1.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3.1.1/packagesearch-version-utils-jvm-3.1.1.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-mvstore/0.0.4/kotlinx-document-store-mvstore-0.0.4.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3.3.1/packagesearch-version-utils-jvm-3.3.1.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4.0.10/krypto-jvm-4.0.10.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4.0.10/krypto-jvm-4.0.10.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-core-jvm/0.0.4/kotlinx-document-store-core-jvm-0.0.4.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-core-jvm/0.5.0/kotlinx-io-core-jvm-0.5.0.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-bytestring-jvm/0.5.0/kotlinx-io-bytestring-jvm-0.5.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3.1.1/packagesearch-api-client-jvm-3.1.1-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3.3.1/packagesearch-api-client-jvm-3.3.1-sources.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3.1.1/packagesearch-http-models-jvm-3.1.1-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3.3.1/packagesearch-http-models-jvm-3.3.1-sources.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3.1.1/packagesearch-api-models-jvm-3.1.1-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3.3.1/packagesearch-api-models-jvm-3.3.1-sources.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3.1.1/packagesearch-version-utils-jvm-3.1.1-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-mvstore/0.0.4/kotlinx-document-store-mvstore-0.0.4-sources.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3.3.1/packagesearch-version-utils-jvm-3.3.1-sources.jar!/" />
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4.0.10/krypto-jvm-4.0.10-sources.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4.0.10/krypto-jvm-4.0.10-sources.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-core-jvm/0.0.4/kotlinx-document-store-core-jvm-0.0.4-sources.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-core-jvm/0.5.0/kotlinx-io-core-jvm-0.5.0-sources.jar!/" />
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-bytestring-jvm/0.5.0/kotlinx-io-bytestring-jvm-0.5.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -50,5 +50,6 @@
|
|||||||
<orderEntry type="library" scope="TEST" name="kotlinx-coroutines-test" level="project" />
|
<orderEntry type="library" scope="TEST" name="kotlinx-coroutines-test" level="project" />
|
||||||
<orderEntry type="module" module-name="intellij.libraries.ktor.client" />
|
<orderEntry type="module" module-name="intellij.libraries.ktor.client" />
|
||||||
<orderEntry type="library" exported="" name="package-search-api-client" level="project" />
|
<orderEntry type="library" exported="" name="package-search-api-client" level="project" />
|
||||||
|
<orderEntry type="library" name="mvstore" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -9,8 +9,12 @@
|
|||||||
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3/packagesearch-api-client-jvm-3.jar
|
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-client-jvm/3/packagesearch-api-client-jvm-3.jar
|
||||||
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3/packagesearch-http-models-jvm-3.jar
|
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-http-models-jvm/3/packagesearch-http-models-jvm-3.jar
|
||||||
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3/packagesearch-api-models-jvm-3.jar
|
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-api-models-jvm/3/packagesearch-api-models-jvm-3.jar
|
||||||
|
- name: $MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-mvstore/0/kotlinx-document-store-mvstore-0.jar
|
||||||
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3/packagesearch-version-utils-jvm-3.jar
|
- name: $MAVEN_REPOSITORY$/org/jetbrains/packagesearch/packagesearch-version-utils-jvm/3/packagesearch-version-utils-jvm-3.jar
|
||||||
- name: $MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4/krypto-jvm-4.jar
|
- name: $MAVEN_REPOSITORY$/com/soywiz/korlibs/krypto/krypto-jvm/4/krypto-jvm-4.jar
|
||||||
|
- name: $MAVEN_REPOSITORY$/com/github/lamba92/kotlinx-document-store-core-jvm/0/kotlinx-document-store-core-jvm-0.jar
|
||||||
|
- name: $MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-core-jvm/0/kotlinx-io-core-jvm-0.jar
|
||||||
|
- name: $MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-io-bytestring-jvm/0/kotlinx-io-bytestring-jvm-0.jar
|
||||||
reason: <- intellij.repository.search
|
reason: <- intellij.repository.search
|
||||||
modules:
|
modules:
|
||||||
- name: intellij.repository.search
|
- name: intellij.repository.search
|
||||||
@@ -2,15 +2,26 @@ package org.jetbrains.idea.packagesearch.api
|
|||||||
|
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.application.ApplicationInfo
|
import com.intellij.openapi.application.ApplicationInfo
|
||||||
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
|
import com.intellij.openapi.application.ApplicationNamesInfo
|
||||||
|
import com.intellij.openapi.application.appSystemDir
|
||||||
import com.intellij.openapi.components.Service
|
import com.intellij.openapi.components.Service
|
||||||
|
import com.intellij.util.io.createParentDirectories
|
||||||
import io.ktor.client.engine.java.Java
|
import io.ktor.client.engine.java.Java
|
||||||
import io.ktor.client.plugins.DefaultRequest
|
import io.ktor.client.plugins.DefaultRequest
|
||||||
|
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
|
||||||
|
import io.ktor.client.plugins.compression.ContentEncoding
|
||||||
import io.ktor.client.plugins.logging.LogLevel
|
import io.ktor.client.plugins.logging.LogLevel
|
||||||
import io.ktor.client.plugins.logging.Logger
|
import io.ktor.client.plugins.logging.Logger
|
||||||
import io.ktor.client.plugins.logging.Logging
|
import io.ktor.client.plugins.logging.Logging
|
||||||
import io.ktor.client.request.headers
|
import io.ktor.client.request.headers
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.document.database.DataStore
|
||||||
|
import kotlinx.document.database.mvstore.MVDataStore
|
||||||
import org.jetbrains.annotations.ApiStatus.ScheduledForRemoval
|
import org.jetbrains.annotations.ApiStatus.ScheduledForRemoval
|
||||||
import org.jetbrains.idea.maven.onlinecompletion.model.MavenDependencyCompletionItem
|
import org.jetbrains.idea.maven.onlinecompletion.model.MavenDependencyCompletionItem
|
||||||
import org.jetbrains.idea.maven.onlinecompletion.model.MavenRepositoryArtifactInfo
|
import org.jetbrains.idea.maven.onlinecompletion.model.MavenRepositoryArtifactInfo
|
||||||
@@ -18,16 +29,21 @@ import org.jetbrains.idea.reposearch.DependencySearchProvider
|
|||||||
import org.jetbrains.idea.reposearch.PluginEnvironment
|
import org.jetbrains.idea.reposearch.PluginEnvironment
|
||||||
import org.jetbrains.idea.reposearch.RepositoryArtifactData
|
import org.jetbrains.idea.reposearch.RepositoryArtifactData
|
||||||
import org.jetbrains.idea.reposearch.logTrace
|
import org.jetbrains.idea.reposearch.logTrace
|
||||||
|
import org.jetbrains.packagesearch.api.PackageSearchApiClientObject
|
||||||
import org.jetbrains.packagesearch.api.v3.ApiMavenPackage
|
import org.jetbrains.packagesearch.api.v3.ApiMavenPackage
|
||||||
import org.jetbrains.packagesearch.api.v3.http.PackageSearchApiClient
|
import org.jetbrains.packagesearch.api.v3.http.PackageSearchApiClient
|
||||||
import org.jetbrains.packagesearch.api.v3.http.PackageSearchApiClient.Companion.defaultHttpClient
|
import org.jetbrains.packagesearch.api.v3.http.PackageSearchApiClient.Companion.defaultHttpClient
|
||||||
import org.jetbrains.packagesearch.api.v3.http.PackageSearchEndpoints
|
import org.jetbrains.packagesearch.api.v3.http.PackageSearchEndpoints
|
||||||
import org.jetbrains.packagesearch.api.v3.http.searchPackages
|
import org.jetbrains.packagesearch.api.v3.http.searchPackages
|
||||||
import org.jetbrains.packagesearch.api.v3.search.jvmMavenPackages
|
import org.jetbrains.packagesearch.api.v3.search.jvmMavenPackages
|
||||||
|
import java.nio.file.Path
|
||||||
|
import kotlin.io.path.absolutePathString
|
||||||
|
import kotlin.io.path.div
|
||||||
|
import kotlin.io.path.exists
|
||||||
import kotlin.time.Duration.Companion.seconds
|
import kotlin.time.Duration.Companion.seconds
|
||||||
|
|
||||||
@Service(Service.Level.APP)
|
@Service(Service.Level.APP)
|
||||||
class PackageSearchApiClientService : Disposable, DependencySearchProvider {
|
class PackageSearchApiClientService(val coroutineScope: CoroutineScope) : Disposable, DependencySearchProvider {
|
||||||
|
|
||||||
private val httpClient = defaultHttpClient(engine = Java, protobuf = false) {
|
private val httpClient = defaultHttpClient(engine = Java, protobuf = false) {
|
||||||
install(UserAgent) {
|
install(UserAgent) {
|
||||||
@@ -35,7 +51,7 @@ class PackageSearchApiClientService : Disposable, DependencySearchProvider {
|
|||||||
}
|
}
|
||||||
install(DefaultRequest) {
|
install(DefaultRequest) {
|
||||||
headers {
|
headers {
|
||||||
append("Api-Version", "3.1.1")
|
append("Api-Version", PackageSearchApiClientObject.version)
|
||||||
append("JB-IDE-Version", PluginEnvironment.ideVersion)
|
append("JB-IDE-Version", PluginEnvironment.ideVersion)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -48,18 +64,48 @@ class PackageSearchApiClientService : Disposable, DependencySearchProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
install(ContentEncoding) {
|
||||||
|
deflate()
|
||||||
|
gzip()
|
||||||
|
}
|
||||||
|
install(HttpRequestRetry) {
|
||||||
|
maxRetries = 5
|
||||||
|
retryOnException(retryOnTimeout = true)
|
||||||
|
}
|
||||||
install(HttpTimeout) {
|
install(HttpTimeout) {
|
||||||
requestTimeoutMillis = 10.seconds.inWholeMilliseconds
|
requestTimeoutMillis = 10.seconds.inWholeMilliseconds
|
||||||
|
socketTimeoutMillis = 3.seconds.inWholeMilliseconds
|
||||||
|
connectTimeoutMillis = 3.seconds.inWholeMilliseconds
|
||||||
|
}
|
||||||
|
install(UserAgent) {
|
||||||
|
agent = intelliJ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val cacheFilePath
|
||||||
|
get() = appSystemDir / "caches" / "packagesearch" / "${PackageSearchApiClientObject.version}.db"
|
||||||
|
|
||||||
|
|
||||||
|
private val mvDataStore = MVDataStore.open(
|
||||||
|
getCacheFile(),
|
||||||
|
DataStore.CommitStrategy.Periodic(5.seconds))
|
||||||
|
|
||||||
val client = PackageSearchApiClient(
|
val client = PackageSearchApiClient(
|
||||||
|
dataStore = mvDataStore,
|
||||||
endpoints = PackageSearchEndpoints.PROD,
|
endpoints = PackageSearchEndpoints.PROD,
|
||||||
httpClient = httpClient
|
httpClient = httpClient
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private fun getCacheFile(): Path {
|
||||||
|
if (!cacheFilePath.exists()) cacheFilePath.createParentDirectories().absolutePathString()
|
||||||
|
return cacheFilePath
|
||||||
|
}
|
||||||
|
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
httpClient.close()
|
httpClient.close()
|
||||||
|
coroutineScope.launch(Dispatchers.IO) {
|
||||||
|
mvDataStore.close()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use directly the client instead")
|
@Deprecated("Use directly the client instead")
|
||||||
@@ -126,3 +172,16 @@ private fun ApiMavenPackage.repositoryArtifactData(): MavenRepositoryArtifactInf
|
|||||||
/* version = */ versions.toTypedArray()
|
/* version = */ versions.toTypedArray()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun UserAgent.Config.intelliJ(): String {
|
||||||
|
val app = ApplicationManager.getApplication()
|
||||||
|
if (app != null && !app.isDisposed) {
|
||||||
|
val productName = ApplicationNamesInfo.getInstance().fullProductName
|
||||||
|
val version = ApplicationInfo.getInstance().build.asStringWithoutProductCode()
|
||||||
|
return "$productName/$version"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "IntelliJ"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user