diff --git a/android-test-app/src/main/kotlin/okhttp/android/testapp/MainActivity.kt b/android-test-app/src/main/kotlin/okhttp/android/testapp/MainActivity.kt index d9ed518156ff..cf896359b4b1 100644 --- a/android-test-app/src/main/kotlin/okhttp/android/testapp/MainActivity.kt +++ b/android-test-app/src/main/kotlin/okhttp/android/testapp/MainActivity.kt @@ -23,6 +23,7 @@ import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response +import okhttp3.internal.platform.AndroidPlatform import okio.IOException class MainActivity : ComponentActivity() { @@ -31,6 +32,9 @@ class MainActivity : ComponentActivity() { val client = OkHttpClient() + // Ensure we are compiling against the right variant + println(AndroidPlatform.isSupported) + val url = "https://github.com/square/okhttp".toHttpUrl() println(url.topPrivateDomain()) diff --git a/build.gradle.kts b/build.gradle.kts index 13122ea3fdf9..dd647ba4fe41 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.jetbrains.dokka.gradle.DokkaTaskPartial import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.kotlinExtension +import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import ru.vyarus.gradle.plugin.animalsniffer.AnimalSnifferExtension import java.net.URI @@ -93,11 +94,16 @@ subprojects { apply(plugin = "checkstyle") apply(plugin = "ru.vyarus.animalsniffer") - apply(plugin = "biz.aQute.bnd.builder") - apply(plugin = "io.github.usefulness.maven-sympathy") + + // The 'java' plugin has been applied, but it is not compatible with the Android plugins. + // These are applied inside the okhttp module for that case specifically + if (project.name != "okhttp") { + apply(plugin = "biz.aQute.bnd.builder") + apply(plugin = "io.github.usefulness.maven-sympathy") + } // Skip samples parent - if (project.buildFile.exists()) { + if (project.buildFile.exists() && project.name != "okhttp") { apply(plugin = "com.android.lint") dependencies { @@ -109,9 +115,11 @@ subprojects { options.encoding = Charsets.UTF_8.toString() } - configure { - toolchain { - languageVersion.set(JavaLanguageVersion.of(17)) + if (plugins.hasPlugin(JavaBasePlugin::class.java)) { + extensions.configure { + toolchain { + languageVersion.set(JavaLanguageVersion.of(17)) + } } } @@ -126,33 +134,38 @@ subprojects { } } - configure { - config = resources.text.fromArchiveEntry(checkstyleConfig, "google_checks.xml") - toolVersion = rootProject.libs.versions.checkStyle.get() - sourceSets = listOf(project.sourceSets["main"]) - } + // Handled in :okhttp directly + if (project.name != "okhttp") { + configure { + config = resources.text.fromArchiveEntry(checkstyleConfig, "google_checks.xml") + toolVersion = rootProject.libs.versions.checkStyle.get() + sourceSets = listOf(project.sourceSets["main"]) + } - // Animal Sniffer confirms we generally don't use APIs not on Java 8. - configure { - annotation = "okhttp3.internal.SuppressSignatureCheck" - sourceSets = listOf(project.sourceSets["main"]) + // Animal Sniffer confirms we generally don't use APIs not on Java 8. + configure { + annotation = "okhttp3.internal.SuppressSignatureCheck" + sourceSets = listOf(project.sourceSets["main"]) + } } - val signature: Configuration by configurations.getting dependencies { // No dependency requirements for testing-support. if (project.name == "okhttp-testing-support") return@dependencies + // okhttp configured specifically. + if (project.name == "okhttp") return@dependencies + if (project.name == "mockwebserver3-junit5") { // JUnit 5's APIs need java.util.function.Function and java.util.Optional from API 24. - signature(rootProject.libs.signature.android.apilevel24) { artifact { type = "signature" } } + "signature"(rootProject.libs.signature.android.apilevel24) { artifact { type = "signature" } } } else { // Everything else requires Android API 21+. - signature(rootProject.libs.signature.android.apilevel21) { artifact { type = "signature" } } + "signature"(rootProject.libs.signature.android.apilevel21) { artifact { type = "signature" } } } // OkHttp requires Java 8+. - signature(rootProject.libs.codehaus.signature.java18) { artifact { type = "signature" } } + "signature"(rootProject.libs.codehaus.signature.java18) { artifact { type = "signature" } } } val javaVersionSetting = @@ -175,10 +188,15 @@ subprojects { } } - val testRuntimeOnly: Configuration by configurations.getting - dependencies { - testRuntimeOnly(rootProject.libs.junit.jupiter.engine) - testRuntimeOnly(rootProject.libs.junit.vintage.engine) + val platform = System.getProperty("okhttp.platform", "jdk9") + val testJavaVersion = System.getProperty("test.java.version", "21").toInt() + + if (project.name != "okhttp") { + val testRuntimeOnly: Configuration by configurations.getting + dependencies { + testRuntimeOnly(rootProject.libs.junit.jupiter.engine) + testRuntimeOnly(rootProject.libs.junit.vintage.engine) + } } tasks.withType { @@ -211,25 +229,30 @@ subprojects { tasks.withType().configureEach { environment("OKHTTP_ROOT", rootDir) } + tasks.withType().configureEach { + environment("OKHTTP_ROOT", rootDir) + } - if (platform == "jdk8alpn") { - // Add alpn-boot on Java 8 so we can use HTTP/2 without a stable API. - val alpnBootVersion = alpnBootVersion() - if (alpnBootVersion != null) { - val alpnBootJar = configurations.detachedConfiguration( - dependencies.create("org.mortbay.jetty.alpn:alpn-boot:$alpnBootVersion") - ).singleFile - tasks.withType { - jvmArgs("-Xbootclasspath/p:${alpnBootJar}") + if (project.name != "okhttp") { + if (platform == "jdk8alpn") { + // Add alpn-boot on Java 8 so we can use HTTP/2 without a stable API. + val alpnBootVersion = alpnBootVersion() + if (alpnBootVersion != null) { + val alpnBootJar = configurations.detachedConfiguration( + dependencies.create("org.mortbay.jetty.alpn:alpn-boot:$alpnBootVersion") + ).singleFile + tasks.withType { + jvmArgs("-Xbootclasspath/p:${alpnBootJar}") + } + } + } else if (platform == "conscrypt") { + dependencies { +// testRuntimeOnly(rootProject.libs.conscrypt.openjdk) + } + } else if (platform == "openjsse") { + dependencies { +// testRuntimeOnly(rootProject.libs.openjsse) } - } - } else if (platform == "conscrypt") { - dependencies { - testRuntimeOnly(rootProject.libs.conscrypt.openjdk) - } - } else if (platform == "openjsse") { - dependencies { - testRuntimeOnly(rootProject.libs.openjsse) } } @@ -246,6 +269,11 @@ subprojects { languageSettings.optIn("okhttp3.ExperimentalOkHttpApi") } } + plugins.withId("org.jetbrains.kotlin.multiplatform") { + kotlinExtension.sourceSets.configureEach { + languageSettings.optIn("okhttp3.ExperimentalOkHttpApi") + } + } plugins.withId("org.jetbrains.kotlin.android") { kotlinExtension.sourceSets.configureEach { languageSettings.optIn("okhttp3.ExperimentalOkHttpApi") @@ -316,6 +344,14 @@ subprojects { } } +plugins.withId("org.jetbrains.kotlin.jvm") { + val test = tasks.named("test") + tasks.register("jvmTest") { + description = "Get 'gradlew jvmTest' to run the tests of JVM-only modules" + dependsOn(test) + } +} + tasks.wrapper { distributionType = Wrapper.DistributionType.ALL } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 000000000000..ae6fdeecb742 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "okhttp-buildSrc" diff --git a/gradle.properties b/gradle.properties index c7af0b38dfb6..439ab99d084e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,7 @@ org.gradle.caching=true org.gradle.parallel=true android.useAndroidX=true +kotlin.mpp.applyDefaultHierarchyTemplate=false androidBuild=false graalBuild=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ce30ad49d65..a8745321b8de 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -47,7 +47,7 @@ gradlePlugin-androidJunit5 = "de.mannodermaus.gradle.plugins:android-junit5:1.11 gradlePlugin-animalsniffer = "ru.vyarus:gradle-animalsniffer-plugin:1.7.2" gradlePlugin-binaryCompatibilityValidator = "org.jetbrains.kotlinx.binary-compatibility-validator:org.jetbrains.kotlinx.binary-compatibility-validator.gradle.plugin:0.17.0" gradlePlugin-bnd = { module = "biz.aQute.bnd:biz.aQute.bnd.gradle", version.ref = "biz-aQute-bnd" } -gradlePlugin-dokka = "org.jetbrains.dokka:dokka-gradle-plugin:1.9.20" +gradlePlugin-dokka = "org.jetbrains.dokka:dokka-gradle-plugin:2.0.0" gradlePlugin-errorprone = "net.ltgt.gradle:gradle-errorprone-plugin:4.1.0" gradlePlugin-graalvmBuildTools = "org.graalvm.buildtools.native:org.graalvm.buildtools.native.gradle.plugin:0.10.4" gradlePlugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "org-jetbrains-kotlin" } @@ -78,7 +78,6 @@ kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = " kotlin-stdlib-osgi = { module = "org.jetbrains.kotlin:kotlin-osgi-bundle", version.ref = "org-jetbrains-kotlin" } kotlin-test-annotations = { module = "org.jetbrains.kotlin:kotlin-test-annotations-common", version.ref = "org-jetbrains-kotlin" } kotlin-test-common = { module = "org.jetbrains.kotlin:kotlin-test-common", version.ref = "org-jetbrains-kotlin" } -kotlin-test-js = { module = "org.jetbrains.kotlin:kotlin-test-js", version.ref = "org-jetbrains-kotlin" } kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "org-jetbrains-kotlin" } kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "org-jetbrains-coroutines" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "org-jetbrains-coroutines" } diff --git a/mockwebserver-junit4/build.gradle.kts b/mockwebserver-junit4/build.gradle.kts index ced54ebe9c95..389710bbe6d4 100644 --- a/mockwebserver-junit4/build.gradle.kts +++ b/mockwebserver-junit4/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { api(libs.junit) testImplementation(libs.assertk) + testImplementation(libs.junit.vintage.engine) } mavenPublishing { diff --git a/okcurl/build.gradle.kts b/okcurl/build.gradle.kts index a9060b2abb90..0cfa1a5d19a2 100644 --- a/okcurl/build.gradle.kts +++ b/okcurl/build.gradle.kts @@ -55,7 +55,6 @@ tasks.shadowJar { mergeServiceFiles() } - if (testJavaVersion >= 11) { apply(plugin = "org.graalvm.buildtools.native") diff --git a/okhttp-android/build.gradle.kts b/okhttp-android/build.gradle.kts index 59a27124e4ff..d4360b71c694 100644 --- a/okhttp-android/build.gradle.kts +++ b/okhttp-android/build.gradle.kts @@ -64,6 +64,8 @@ dependencies { testImplementation(libs.robolectric) testImplementation(libs.androidx.espresso.core) testImplementation(libs.squareup.okio.fakefilesystem) + testImplementation(projects.okhttpTestingSupport) + testImplementation(rootProject.libs.conscrypt.openjdk) androidTestImplementation(projects.okhttpTls) androidTestImplementation(libs.assertk) @@ -71,7 +73,10 @@ dependencies { androidTestImplementation(libs.androidx.test.runner) } -mavenPublishing { - // AGP 7.2 embeds Dokka 4, which breaks publishing. Android modules are hardcoded to generate Javadoc instead of Gfm. - configure(com.vanniktech.maven.publish.AndroidSingleVariantLibrary(publishJavadocJar=false)) -} +// TODO remove this whole module after merging with okhttp +// Conflicts with KMP :okhttp outputs + +//mavenPublishing { +// // AGP 7.2 embeds Dokka 4, which breaks publishing. Android modules are hardcoded to generate Javadoc instead of Gfm. +// configure(com.vanniktech.maven.publish.AndroidSingleVariantLibrary(publishJavadocJar=false)) +//} diff --git a/okhttp/src/test/java/okhttp3/internal/platform/android/AndroidSocketAdapterTest.kt b/okhttp-android/src/test/kotlin/okhttp3/android/AndroidSocketAdapterTest.kt similarity index 76% rename from okhttp/src/test/java/okhttp3/internal/platform/android/AndroidSocketAdapterTest.kt rename to okhttp-android/src/test/kotlin/okhttp3/android/AndroidSocketAdapterTest.kt index 0d1b3e57f0ec..5c52f3e710af 100644 --- a/okhttp/src/test/java/okhttp3/internal/platform/android/AndroidSocketAdapterTest.kt +++ b/okhttp-android/src/test/kotlin/okhttp3/android/AndroidSocketAdapterTest.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package okhttp3.internal.platform.android +package okhttp3.android import java.security.Provider import javax.net.ssl.SSLContext @@ -22,7 +22,11 @@ import okhttp3.DelegatingSSLSocket import okhttp3.DelegatingSSLSocketFactory import okhttp3.Protocol.HTTP_1_1 import okhttp3.Protocol.HTTP_2 -import okhttp3.testing.PlatformRule +import okhttp3.internal.platform.android.AndroidSocketAdapter +import okhttp3.internal.platform.android.ConscryptSocketAdapter +import okhttp3.internal.platform.android.DeferredSocketAdapter +import okhttp3.internal.platform.android.SocketAdapter +import okhttp3.internal.platform.android.StandardAndroidSocketAdapter import org.conscrypt.Conscrypt import org.junit.Assert.assertFalse import org.junit.Assert.assertNotNull @@ -30,20 +34,13 @@ import org.junit.Assert.assertNull import org.junit.Assert.assertTrue import org.junit.Assume.assumeFalse import org.junit.Assume.assumeTrue -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.extension.RegisterExtension -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.MethodSource - -class AndroidSocketAdapterTest { - @RegisterExtension @JvmField - val platform = PlatformRule() - - @BeforeEach - fun setUp() { - platform.assumeConscrypt() - } +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.ParameterizedRobolectricTestRunner +import org.robolectric.ParameterizedRobolectricTestRunner.Parameters +@RunWith(ParameterizedRobolectricTestRunner::class) +class AndroidSocketAdapterTest(val adapter: SocketAdapter) { val context: SSLContext by lazy { val provider: Provider = Conscrypt.newProviderBuilder().provideTrustManager(true).build() @@ -52,9 +49,8 @@ class AndroidSocketAdapterTest { } } - @ParameterizedTest - @MethodSource("data") - fun testMatchesSupportedSocket(adapter: SocketAdapter) { + @Test + fun testMatchesSupportedSocket() { val socketFactory = context.socketFactory val sslSocket = socketFactory.createSocket() as SSLSocket @@ -65,27 +61,24 @@ class AndroidSocketAdapterTest { assertNull(adapter.getSelectedProtocol(sslSocket)) } - @ParameterizedTest - @MethodSource("data") - fun testMatchesSupportedAndroidSocketFactory(adapter: SocketAdapter) { + @Test + fun testMatchesSupportedAndroidSocketFactory() { assumeTrue(adapter is StandardAndroidSocketAdapter) assertTrue(adapter.matchesSocketFactory(context.socketFactory)) assertNotNull(adapter.trustManager(context.socketFactory)) } - @ParameterizedTest - @MethodSource("data") - fun testDoesntMatchSupportedCustomSocketFactory(adapter: SocketAdapter) { + @Test + fun testDoesntMatchSupportedCustomSocketFactory() { assumeFalse(adapter is StandardAndroidSocketAdapter) assertFalse(adapter.matchesSocketFactory(context.socketFactory)) assertNull(adapter.trustManager(context.socketFactory)) } - @ParameterizedTest - @MethodSource("data") - fun testCustomSocket(adapter: SocketAdapter) { + @Test + fun testCustomSocket() { val socketFactory = DelegatingSSLSocketFactory(context.socketFactory) assertFalse(adapter.matchesSocketFactory(socketFactory)) @@ -101,6 +94,7 @@ class AndroidSocketAdapterTest { companion object { @JvmStatic + @Parameters(name = "{0}") fun data(): Collection { return listOfNotNull( DeferredSocketAdapter(ConscryptSocketAdapter.factory), diff --git a/okhttp-android/src/test/kotlin/okhttp3/android/RobolectricOkHttpClientTest.kt b/okhttp-android/src/test/kotlin/okhttp3/android/RobolectricOkHttpClientTest.kt index 1ffaefa723e9..0a8faf0d65ab 100644 --- a/okhttp-android/src/test/kotlin/okhttp3/android/RobolectricOkHttpClientTest.kt +++ b/okhttp-android/src/test/kotlin/okhttp3/android/RobolectricOkHttpClientTest.kt @@ -40,7 +40,7 @@ import org.robolectric.annotation.Config @RunWith(RobolectricTestRunner::class) @Config( - sdk = [30], + sdk = [21, 26, 30, 33, 35], ) class RobolectricOkHttpClientTest { private lateinit var context: Context diff --git a/okhttp-idna-mapping-table/build.gradle.kts b/okhttp-idna-mapping-table/build.gradle.kts index 250c18a60af5..7154371ce8b2 100644 --- a/okhttp-idna-mapping-table/build.gradle.kts +++ b/okhttp-idna-mapping-table/build.gradle.kts @@ -9,6 +9,8 @@ dependencies { testImplementation(libs.assertk) testImplementation(libs.junit.jupiter.api) testImplementation(libs.junit.jupiter.params) + + testImplementation(rootProject.libs.junit.jupiter.engine) } animalsniffer { diff --git a/okhttp-osgi-tests/build.gradle.kts b/okhttp-osgi-tests/build.gradle.kts new file mode 100644 index 000000000000..94b45096ebec --- /dev/null +++ b/okhttp-osgi-tests/build.gradle.kts @@ -0,0 +1,68 @@ +plugins { + kotlin("jvm") +} + +dependencies { + implementation(projects.okhttp) + implementation(projects.okhttpBrotli) + implementation(projects.okhttpCoroutines) + implementation(projects.okhttpDnsoverhttps) + implementation(projects.loggingInterceptor) + implementation(projects.okhttpSse) + implementation(projects.okhttpTls) + implementation(projects.okhttpUrlconnection) + + testImplementation(projects.okhttpTestingSupport) + testImplementation(libs.junit) + testImplementation(libs.kotlin.test.common) + testImplementation(libs.kotlin.test.junit) + testImplementation(libs.assertk) + + testImplementation(libs.aqute.resolve) +} + +normalization { + runtimeClasspath { + /* + - The below two ignored files are generated during test execution + by the test: okhttp/src/test/java/okhttp3/osgi/OsgiTest.java + + - The compressed index.xml file contains a timestamp property which + changes with every test execution, such that running the test + actually changes the test classpath itself. This means that it + can"t benefit from incremental build acceleration, because on every + execution it sees that the classpath has changed, and so to be + safe, it needs to re-run. + + - This is unfortunate, because actually it would be safe to declare + the task as up-to-date, because these two files, which are based on + the generated index.xml, are outputs, not inputs. We can be sure of + this because they are deleted in the @BeforeEach method of the + OsgiTest test class. + + - To enable the benefit of incremental builds, we can ask Gradle + to ignore these two files when considering whether the classpath + has changed. That is the purpose of this normalization block. + */ + ignore("okhttp3/osgi/workspace/cnf/repo/index.xml.gz") + ignore("okhttp3/osgi/workspace/cnf/repo/index.xml.gz.sha") + } +} + +// Expose OSGi jars to the test environment. +val osgiTestDeploy: Configuration by configurations.creating + +val test = tasks.named("test") +val copyOsgiTestDeployment = tasks.register("copyOsgiTestDeployment") { + from(osgiTestDeploy) + into(layout.buildDirectory.dir("resources/test/okhttp3/osgi/deployments")) +} + +test.configure { + dependsOn(copyOsgiTestDeployment) +} + +dependencies { + osgiTestDeploy(libs.eclipseOsgi) + osgiTestDeploy(libs.kotlin.stdlib.osgi) +} diff --git a/okhttp/src/test/java/okhttp3/osgi/OsgiTest.kt b/okhttp-osgi-tests/src/test/kotlin/okhttp3/osgi/OsgiTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/osgi/OsgiTest.kt rename to okhttp-osgi-tests/src/test/kotlin/okhttp3/osgi/OsgiTest.kt diff --git a/okhttp-testing-support/build.gradle.kts b/okhttp-testing-support/build.gradle.kts index 68d2cb4bc2ee..87c287063693 100644 --- a/okhttp-testing-support/build.gradle.kts +++ b/okhttp-testing-support/build.gradle.kts @@ -14,6 +14,8 @@ dependencies { api(libs.conscrypt.openjdk) api(libs.openjsse) + api(rootProject.libs.junit.jupiter.engine) + api(variantOf(libs.amazonCorretto) { classifier("linux-x86_64") }) diff --git a/okhttp-testing-support/src/main/kotlin/okhttp3/internal/concurrent/TaskFaker.kt b/okhttp-testing-support/src/main/kotlin/okhttp3/internal/concurrent/TaskFaker.kt index e9be10d078cd..b1b96c7f82b9 100644 --- a/okhttp-testing-support/src/main/kotlin/okhttp3/internal/concurrent/TaskFaker.kt +++ b/okhttp-testing-support/src/main/kotlin/okhttp3/internal/concurrent/TaskFaker.kt @@ -360,15 +360,17 @@ class TaskFaker : Closeable { timeout: Long, unit: TimeUnit, ): T? { - taskRunner.withLock { + return taskRunner.withLock { val waitUntil = nanoTime + unit.toNanos(timeout) while (true) { val result = poll() - if (result != null) return result - if (nanoTime >= waitUntil) return null + if (result != null) return@withLock result + if (nanoTime >= waitUntil) return@withLock null val editCountBefore = editCount yieldUntil { nanoTime >= waitUntil || editCount > editCountBefore } } + // TODO report compiler bug + TODO("Can't get here") } } diff --git a/okhttp-testing-support/src/main/kotlin/okhttp3/testing/PlatformRule.kt b/okhttp-testing-support/src/main/kotlin/okhttp3/testing/PlatformRule.kt index bbcda679fcfb..2b9f42d66439 100644 --- a/okhttp-testing-support/src/main/kotlin/okhttp3/testing/PlatformRule.kt +++ b/okhttp-testing-support/src/main/kotlin/okhttp3/testing/PlatformRule.kt @@ -26,6 +26,7 @@ import okhttp3.internal.platform.Jdk8WithJettyBootPlatform import okhttp3.internal.platform.Jdk9Platform import okhttp3.internal.platform.OpenJSSEPlatform import okhttp3.internal.platform.Platform +import okhttp3.internal.platform.PlatformRegistry import okhttp3.tls.HandshakeCertificates import okhttp3.tls.HeldCertificate import okhttp3.tls.internal.TlsUtil.localhost @@ -435,9 +436,14 @@ open class PlatformRule } @JvmStatic - fun getPlatformSystemProperty(): String { + fun getPlatformSystemProperty(): String? { var property: String? = System.getProperty(PROPERTY_NAME) + if (PlatformRegistry.isAndroid) { + // Platforms below are unavailable on Android + return null + } + if (property == null) { property = when (Platform.get()) { diff --git a/okhttp/api/okhttp.api b/okhttp/api/android/okhttp.api similarity index 100% rename from okhttp/api/okhttp.api rename to okhttp/api/android/okhttp.api diff --git a/okhttp/api/jvm/okhttp.api b/okhttp/api/jvm/okhttp.api new file mode 100644 index 000000000000..fcc0709091a4 --- /dev/null +++ b/okhttp/api/jvm/okhttp.api @@ -0,0 +1,1294 @@ +public final class okhttp3/Address { + public final fun -deprecated_certificatePinner ()Lokhttp3/CertificatePinner; + public final fun -deprecated_connectionSpecs ()Ljava/util/List; + public final fun -deprecated_dns ()Lokhttp3/Dns; + public final fun -deprecated_hostnameVerifier ()Ljavax/net/ssl/HostnameVerifier; + public final fun -deprecated_protocols ()Ljava/util/List; + public final fun -deprecated_proxy ()Ljava/net/Proxy; + public final fun -deprecated_proxyAuthenticator ()Lokhttp3/Authenticator; + public final fun -deprecated_proxySelector ()Ljava/net/ProxySelector; + public final fun -deprecated_socketFactory ()Ljavax/net/SocketFactory; + public final fun -deprecated_sslSocketFactory ()Ljavax/net/ssl/SSLSocketFactory; + public final fun -deprecated_url ()Lokhttp3/HttpUrl; + public fun (Ljava/lang/String;ILokhttp3/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lokhttp3/CertificatePinner;Lokhttp3/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V + public final fun certificatePinner ()Lokhttp3/CertificatePinner; + public final fun connectionSpecs ()Ljava/util/List; + public final fun dns ()Lokhttp3/Dns; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun hostnameVerifier ()Ljavax/net/ssl/HostnameVerifier; + public final fun protocols ()Ljava/util/List; + public final fun proxy ()Ljava/net/Proxy; + public final fun proxyAuthenticator ()Lokhttp3/Authenticator; + public final fun proxySelector ()Ljava/net/ProxySelector; + public final fun socketFactory ()Ljavax/net/SocketFactory; + public final fun sslSocketFactory ()Ljavax/net/ssl/SSLSocketFactory; + public fun toString ()Ljava/lang/String; + public final fun url ()Lokhttp3/HttpUrl; +} + +public abstract interface class okhttp3/AsyncDns { + public static final field Companion Lokhttp3/AsyncDns$Companion; + public static final field TYPE_A I + public static final field TYPE_AAAA I + public abstract fun query (Ljava/lang/String;Lokhttp3/AsyncDns$Callback;)V +} + +public abstract interface class okhttp3/AsyncDns$Callback { + public abstract fun onFailure (Ljava/lang/String;Ljava/io/IOException;)V + public abstract fun onResponse (Ljava/lang/String;Ljava/util/List;)V +} + +public final class okhttp3/AsyncDns$Companion { + public static final field TYPE_A I + public static final field TYPE_AAAA I + public final fun toDns ([Lokhttp3/AsyncDns;)Lokhttp3/Dns; +} + +public final class okhttp3/AsyncDns$DnsClass : java/lang/Enum { + public static final field IPV4 Lokhttp3/AsyncDns$DnsClass; + public static final field IPV6 Lokhttp3/AsyncDns$DnsClass; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getType ()I + public static fun valueOf (Ljava/lang/String;)Lokhttp3/AsyncDns$DnsClass; + public static fun values ()[Lokhttp3/AsyncDns$DnsClass; +} + +public abstract interface class okhttp3/Authenticator { + public static final field Companion Lokhttp3/Authenticator$Companion; + public static final field JAVA_NET_AUTHENTICATOR Lokhttp3/Authenticator; + public static final field NONE Lokhttp3/Authenticator; + public abstract fun authenticate (Lokhttp3/Route;Lokhttp3/Response;)Lokhttp3/Request; +} + +public final class okhttp3/Authenticator$Companion { +} + +public final class okhttp3/Cache : java/io/Closeable, java/io/Flushable { + public static final field Companion Lokhttp3/Cache$Companion; + public final fun -deprecated_directory ()Ljava/io/File; + public fun (Ljava/io/File;J)V + public fun (Lokio/FileSystem;Lokio/Path;J)V + public fun close ()V + public final fun delete ()V + public final fun directory ()Ljava/io/File; + public final fun directoryPath ()Lokio/Path; + public final fun evictAll ()V + public fun flush ()V + public final fun hitCount ()I + public final fun initialize ()V + public final fun isClosed ()Z + public static final fun key (Lokhttp3/HttpUrl;)Ljava/lang/String; + public final fun maxSize ()J + public final fun networkCount ()I + public final fun requestCount ()I + public final fun size ()J + public final fun urls ()Ljava/util/Iterator; + public final fun writeAbortCount ()I + public final fun writeSuccessCount ()I +} + +public final class okhttp3/Cache$Companion { + public final fun hasVaryAll (Lokhttp3/Response;)Z + public final fun key (Lokhttp3/HttpUrl;)Ljava/lang/String; + public final fun varyHeaders (Lokhttp3/Response;)Lokhttp3/Headers; + public final fun varyMatches (Lokhttp3/Response;Lokhttp3/Headers;Lokhttp3/Request;)Z +} + +public final class okhttp3/CacheControl { + public static final field Companion Lokhttp3/CacheControl$Companion; + public static final field FORCE_CACHE Lokhttp3/CacheControl; + public static final field FORCE_NETWORK Lokhttp3/CacheControl; + public final fun -deprecated_immutable ()Z + public final fun -deprecated_maxAgeSeconds ()I + public final fun -deprecated_maxStaleSeconds ()I + public final fun -deprecated_minFreshSeconds ()I + public final fun -deprecated_mustRevalidate ()Z + public final fun -deprecated_noCache ()Z + public final fun -deprecated_noStore ()Z + public final fun -deprecated_noTransform ()Z + public final fun -deprecated_onlyIfCached ()Z + public final fun -deprecated_sMaxAgeSeconds ()I + public final fun immutable ()Z + public final fun isPrivate ()Z + public final fun isPublic ()Z + public final fun maxAgeSeconds ()I + public final fun maxStaleSeconds ()I + public final fun minFreshSeconds ()I + public final fun mustRevalidate ()Z + public final fun noCache ()Z + public final fun noStore ()Z + public final fun noTransform ()Z + public final fun onlyIfCached ()Z + public static final fun parse (Lokhttp3/Headers;)Lokhttp3/CacheControl; + public final fun sMaxAgeSeconds ()I + public fun toString ()Ljava/lang/String; +} + +public final class okhttp3/CacheControl$Builder { + public fun ()V + public final fun build ()Lokhttp3/CacheControl; + public final fun immutable ()Lokhttp3/CacheControl$Builder; + public final fun maxAge (ILjava/util/concurrent/TimeUnit;)Lokhttp3/CacheControl$Builder; + public final fun maxAge-LRDsOJo (J)Lokhttp3/CacheControl$Builder; + public final fun maxStale (ILjava/util/concurrent/TimeUnit;)Lokhttp3/CacheControl$Builder; + public final fun maxStale-LRDsOJo (J)Lokhttp3/CacheControl$Builder; + public final fun minFresh (ILjava/util/concurrent/TimeUnit;)Lokhttp3/CacheControl$Builder; + public final fun minFresh-LRDsOJo (J)Lokhttp3/CacheControl$Builder; + public final fun noCache ()Lokhttp3/CacheControl$Builder; + public final fun noStore ()Lokhttp3/CacheControl$Builder; + public final fun noTransform ()Lokhttp3/CacheControl$Builder; + public final fun onlyIfCached ()Lokhttp3/CacheControl$Builder; +} + +public final class okhttp3/CacheControl$Companion { + public final fun parse (Lokhttp3/Headers;)Lokhttp3/CacheControl; +} + +public abstract interface class okhttp3/Call : java/lang/Cloneable { + public abstract fun cancel ()V + public abstract fun clone ()Lokhttp3/Call; + public abstract fun enqueue (Lokhttp3/Callback;)V + public abstract fun execute ()Lokhttp3/Response; + public abstract fun isCanceled ()Z + public abstract fun isExecuted ()Z + public abstract fun request ()Lokhttp3/Request; + public abstract fun timeout ()Lokio/Timeout; +} + +public abstract interface class okhttp3/Call$Factory { + public abstract fun newCall (Lokhttp3/Request;)Lokhttp3/Call; +} + +public abstract interface class okhttp3/Callback { + public abstract fun onFailure (Lokhttp3/Call;Ljava/io/IOException;)V + public abstract fun onResponse (Lokhttp3/Call;Lokhttp3/Response;)V +} + +public final class okhttp3/CertificatePinner { + public static final field Companion Lokhttp3/CertificatePinner$Companion; + public static final field DEFAULT Lokhttp3/CertificatePinner; + public final fun check (Ljava/lang/String;Ljava/util/List;)V + public final fun check (Ljava/lang/String;[Ljava/security/cert/Certificate;)V + public fun equals (Ljava/lang/Object;)Z + public final fun findMatchingPins (Ljava/lang/String;)Ljava/util/List; + public final fun getPins ()Ljava/util/Set; + public fun hashCode ()I + public static final fun pin (Ljava/security/cert/Certificate;)Ljava/lang/String; + public static final fun sha1Hash (Ljava/security/cert/X509Certificate;)Lokio/ByteString; + public static final fun sha256Hash (Ljava/security/cert/X509Certificate;)Lokio/ByteString; +} + +public final class okhttp3/CertificatePinner$Builder { + public fun ()V + public final fun add (Ljava/lang/String;[Ljava/lang/String;)Lokhttp3/CertificatePinner$Builder; + public final fun build ()Lokhttp3/CertificatePinner; + public final fun getPins ()Ljava/util/List; +} + +public final class okhttp3/CertificatePinner$Companion { + public final fun pin (Ljava/security/cert/Certificate;)Ljava/lang/String; + public final fun sha1Hash (Ljava/security/cert/X509Certificate;)Lokio/ByteString; + public final fun sha256Hash (Ljava/security/cert/X509Certificate;)Lokio/ByteString; +} + +public final class okhttp3/CertificatePinner$Pin { + public fun (Ljava/lang/String;Ljava/lang/String;)V + public fun equals (Ljava/lang/Object;)Z + public final fun getHash ()Lokio/ByteString; + public final fun getHashAlgorithm ()Ljava/lang/String; + public final fun getPattern ()Ljava/lang/String; + public fun hashCode ()I + public final fun matchesCertificate (Ljava/security/cert/X509Certificate;)Z + public final fun matchesHostname (Ljava/lang/String;)Z + public fun toString ()Ljava/lang/String; +} + +public final class okhttp3/Challenge { + public final fun -deprecated_authParams ()Ljava/util/Map; + public final fun -deprecated_charset ()Ljava/nio/charset/Charset; + public final fun -deprecated_realm ()Ljava/lang/String; + public final fun -deprecated_scheme ()Ljava/lang/String; + public fun (Ljava/lang/String;Ljava/lang/String;)V + public fun (Ljava/lang/String;Ljava/util/Map;)V + public final fun authParams ()Ljava/util/Map; + public final fun charset ()Ljava/nio/charset/Charset; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun realm ()Ljava/lang/String; + public final fun scheme ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; + public final fun withCharset (Ljava/nio/charset/Charset;)Lokhttp3/Challenge; +} + +public final class okhttp3/CipherSuite { + public static final field Companion Lokhttp3/CipherSuite$Companion; + public static final field TLS_AES_128_CCM_8_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_AES_128_CCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_CHACHA20_POLY1305_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_DSS_WITH_DES_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DHE_RSA_WITH_DES_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_AES_256_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_DES_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_DH_anon_WITH_RC4_128_MD5 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_NULL_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_ECDSA_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_NULL_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDHE_RSA_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_NULL_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_ECDSA_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_NULL_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_RSA_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_anon_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_anon_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_anon_WITH_NULL_SHA Lokhttp3/CipherSuite; + public static final field TLS_ECDH_anon_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_EMPTY_RENEGOTIATION_INFO_SCSV Lokhttp3/CipherSuite; + public static final field TLS_FALLBACK_SCSV Lokhttp3/CipherSuite; + public static final field TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 Lokhttp3/CipherSuite; + public static final field TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA Lokhttp3/CipherSuite; + public static final field TLS_KRB5_EXPORT_WITH_RC4_40_MD5 Lokhttp3/CipherSuite; + public static final field TLS_KRB5_EXPORT_WITH_RC4_40_SHA Lokhttp3/CipherSuite; + public static final field TLS_KRB5_WITH_3DES_EDE_CBC_MD5 Lokhttp3/CipherSuite; + public static final field TLS_KRB5_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_KRB5_WITH_DES_CBC_MD5 Lokhttp3/CipherSuite; + public static final field TLS_KRB5_WITH_DES_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_KRB5_WITH_RC4_128_MD5 Lokhttp3/CipherSuite; + public static final field TLS_KRB5_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_PSK_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_PSK_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_PSK_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_PSK_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_EXPORT_WITH_DES40_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_EXPORT_WITH_RC4_40_MD5 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_3DES_EDE_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_AES_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_AES_128_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_AES_128_GCM_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_AES_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_AES_256_CBC_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_AES_256_GCM_SHA384 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_CAMELLIA_128_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_CAMELLIA_256_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_DES_CBC_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_NULL_MD5 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_NULL_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_NULL_SHA256 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_RC4_128_MD5 Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_RC4_128_SHA Lokhttp3/CipherSuite; + public static final field TLS_RSA_WITH_SEED_CBC_SHA Lokhttp3/CipherSuite; + public final fun -deprecated_javaName ()Ljava/lang/String; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public static final fun forJavaName (Ljava/lang/String;)Lokhttp3/CipherSuite; + public final fun javaName ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class okhttp3/CipherSuite$Companion { + public final fun forJavaName (Ljava/lang/String;)Lokhttp3/CipherSuite; +} + +public abstract interface class okhttp3/Connection { + public abstract fun handshake ()Lokhttp3/Handshake; + public abstract fun protocol ()Lokhttp3/Protocol; + public abstract fun route ()Lokhttp3/Route; + public abstract fun socket ()Ljava/net/Socket; +} + +public abstract class okhttp3/ConnectionListener { + public static final field Companion Lokhttp3/ConnectionListener$Companion; + public fun ()V + public fun connectEnd (Lokhttp3/Connection;Lokhttp3/Route;Lokhttp3/Call;)V + public fun connectFailed (Lokhttp3/Route;Lokhttp3/Call;Ljava/io/IOException;)V + public fun connectStart (Lokhttp3/Route;Lokhttp3/Call;)V + public fun connectionAcquired (Lokhttp3/Connection;Lokhttp3/Call;)V + public fun connectionClosed (Lokhttp3/Connection;)V + public fun connectionReleased (Lokhttp3/Connection;Lokhttp3/Call;)V + public fun noNewExchanges (Lokhttp3/Connection;)V +} + +public final class okhttp3/ConnectionListener$Companion { + public final fun getNONE ()Lokhttp3/ConnectionListener; +} + +public final class okhttp3/ConnectionPool { + public fun ()V + public fun (IJLjava/util/concurrent/TimeUnit;)V + public fun (IJLjava/util/concurrent/TimeUnit;Lokhttp3/ConnectionListener;)V + public synthetic fun (IJLjava/util/concurrent/TimeUnit;Lokhttp3/ConnectionListener;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun connectionCount ()I + public final fun evictAll ()V + public final fun idleConnectionCount ()I + public final fun setPolicy (Lokhttp3/Address;Lokhttp3/ConnectionPool$AddressPolicy;)V +} + +public final class okhttp3/ConnectionPool$AddressPolicy { + public final field backoffDelayMillis J + public final field backoffJitterMillis I + public final field minimumConcurrentCalls I + public fun ()V + public fun (IJI)V + public synthetic fun (IJIILkotlin/jvm/internal/DefaultConstructorMarker;)V +} + +public final class okhttp3/ConnectionSpec { + public static final field CLEARTEXT Lokhttp3/ConnectionSpec; + public static final field COMPATIBLE_TLS Lokhttp3/ConnectionSpec; + public static final field Companion Lokhttp3/ConnectionSpec$Companion; + public static final field MODERN_TLS Lokhttp3/ConnectionSpec; + public static final field RESTRICTED_TLS Lokhttp3/ConnectionSpec; + public final fun -deprecated_cipherSuites ()Ljava/util/List; + public final fun -deprecated_supportsTlsExtensions ()Z + public final fun -deprecated_tlsVersions ()Ljava/util/List; + public final fun cipherSuites ()Ljava/util/List; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun isCompatible (Ljavax/net/ssl/SSLSocket;)Z + public final fun isTls ()Z + public final fun supportsTlsExtensions ()Z + public final fun tlsVersions ()Ljava/util/List; + public fun toString ()Ljava/lang/String; +} + +public final class okhttp3/ConnectionSpec$Builder { + public fun (Lokhttp3/ConnectionSpec;)V + public final fun allEnabledCipherSuites ()Lokhttp3/ConnectionSpec$Builder; + public final fun allEnabledTlsVersions ()Lokhttp3/ConnectionSpec$Builder; + public final fun build ()Lokhttp3/ConnectionSpec; + public final fun cipherSuites ([Ljava/lang/String;)Lokhttp3/ConnectionSpec$Builder; + public final fun cipherSuites ([Lokhttp3/CipherSuite;)Lokhttp3/ConnectionSpec$Builder; + public final fun supportsTlsExtensions (Z)Lokhttp3/ConnectionSpec$Builder; + public final fun tlsVersions ([Ljava/lang/String;)Lokhttp3/ConnectionSpec$Builder; + public final fun tlsVersions ([Lokhttp3/TlsVersion;)Lokhttp3/ConnectionSpec$Builder; +} + +public final class okhttp3/ConnectionSpec$Companion { +} + +public final class okhttp3/Cookie { + public static final field Companion Lokhttp3/Cookie$Companion; + public final fun -deprecated_domain ()Ljava/lang/String; + public final fun -deprecated_expiresAt ()J + public final fun -deprecated_hostOnly ()Z + public final fun -deprecated_httpOnly ()Z + public final fun -deprecated_name ()Ljava/lang/String; + public final fun -deprecated_path ()Ljava/lang/String; + public final fun -deprecated_persistent ()Z + public final fun -deprecated_secure ()Z + public final fun -deprecated_value ()Ljava/lang/String; + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun domain ()Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public final fun expiresAt ()J + public fun hashCode ()I + public final fun hostOnly ()Z + public final fun httpOnly ()Z + public final fun matches (Lokhttp3/HttpUrl;)Z + public final fun name ()Ljava/lang/String; + public final fun newBuilder ()Lokhttp3/Cookie$Builder; + public static final fun parse (Lokhttp3/HttpUrl;Ljava/lang/String;)Lokhttp3/Cookie; + public static final fun parseAll (Lokhttp3/HttpUrl;Lokhttp3/Headers;)Ljava/util/List; + public final fun path ()Ljava/lang/String; + public final fun persistent ()Z + public final fun sameSite ()Ljava/lang/String; + public final fun secure ()Z + public fun toString ()Ljava/lang/String; + public final fun value ()Ljava/lang/String; +} + +public final class okhttp3/Cookie$Builder { + public fun ()V + public final fun build ()Lokhttp3/Cookie; + public final fun domain (Ljava/lang/String;)Lokhttp3/Cookie$Builder; + public final fun expiresAt (J)Lokhttp3/Cookie$Builder; + public final fun hostOnlyDomain (Ljava/lang/String;)Lokhttp3/Cookie$Builder; + public final fun httpOnly ()Lokhttp3/Cookie$Builder; + public final fun name (Ljava/lang/String;)Lokhttp3/Cookie$Builder; + public final fun path (Ljava/lang/String;)Lokhttp3/Cookie$Builder; + public final fun sameSite (Ljava/lang/String;)Lokhttp3/Cookie$Builder; + public final fun secure ()Lokhttp3/Cookie$Builder; + public final fun value (Ljava/lang/String;)Lokhttp3/Cookie$Builder; +} + +public final class okhttp3/Cookie$Companion { + public final fun parse (Lokhttp3/HttpUrl;Ljava/lang/String;)Lokhttp3/Cookie; + public final fun parseAll (Lokhttp3/HttpUrl;Lokhttp3/Headers;)Ljava/util/List; +} + +public abstract interface class okhttp3/CookieJar { + public static final field Companion Lokhttp3/CookieJar$Companion; + public static final field NO_COOKIES Lokhttp3/CookieJar; + public abstract fun loadForRequest (Lokhttp3/HttpUrl;)Ljava/util/List; + public abstract fun saveFromResponse (Lokhttp3/HttpUrl;Ljava/util/List;)V +} + +public final class okhttp3/CookieJar$Companion { +} + +public final class okhttp3/Credentials { + public static final field INSTANCE Lokhttp3/Credentials; + public static final fun basic (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + public static final fun basic (Ljava/lang/String;Ljava/lang/String;Ljava/nio/charset/Charset;)Ljava/lang/String; + public static synthetic fun basic$default (Ljava/lang/String;Ljava/lang/String;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/lang/String; +} + +public final class okhttp3/Dispatcher { + public final fun -deprecated_executorService ()Ljava/util/concurrent/ExecutorService; + public fun ()V + public fun (Ljava/util/concurrent/ExecutorService;)V + public final fun cancelAll ()V + public final fun executorService ()Ljava/util/concurrent/ExecutorService; + public final fun getIdleCallback ()Ljava/lang/Runnable; + public final fun getMaxRequests ()I + public final fun getMaxRequestsPerHost ()I + public final fun queuedCalls ()Ljava/util/List; + public final fun queuedCallsCount ()I + public final fun runningCalls ()Ljava/util/List; + public final fun runningCallsCount ()I + public final fun setIdleCallback (Ljava/lang/Runnable;)V + public final fun setMaxRequests (I)V + public final fun setMaxRequestsPerHost (I)V +} + +public abstract interface class okhttp3/Dns { + public static final field Companion Lokhttp3/Dns$Companion; + public static final field SYSTEM Lokhttp3/Dns; + public abstract fun lookup (Ljava/lang/String;)Ljava/util/List; +} + +public final class okhttp3/Dns$Companion { +} + +public abstract class okhttp3/EventListener { + public static final field Companion Lokhttp3/EventListener$Companion; + public static final field NONE Lokhttp3/EventListener; + public fun ()V + public fun cacheConditionalHit (Lokhttp3/Call;Lokhttp3/Response;)V + public fun cacheHit (Lokhttp3/Call;Lokhttp3/Response;)V + public fun cacheMiss (Lokhttp3/Call;)V + public fun callEnd (Lokhttp3/Call;)V + public fun callFailed (Lokhttp3/Call;Ljava/io/IOException;)V + public fun callStart (Lokhttp3/Call;)V + public fun canceled (Lokhttp3/Call;)V + public fun connectEnd (Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;Lokhttp3/Protocol;)V + public fun connectFailed (Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;Lokhttp3/Protocol;Ljava/io/IOException;)V + public fun connectStart (Lokhttp3/Call;Ljava/net/InetSocketAddress;Ljava/net/Proxy;)V + public fun connectionAcquired (Lokhttp3/Call;Lokhttp3/Connection;)V + public fun connectionReleased (Lokhttp3/Call;Lokhttp3/Connection;)V + public fun dnsEnd (Lokhttp3/Call;Ljava/lang/String;Ljava/util/List;)V + public fun dnsStart (Lokhttp3/Call;Ljava/lang/String;)V + public fun proxySelectEnd (Lokhttp3/Call;Lokhttp3/HttpUrl;Ljava/util/List;)V + public fun proxySelectStart (Lokhttp3/Call;Lokhttp3/HttpUrl;)V + public fun requestBodyEnd (Lokhttp3/Call;J)V + public fun requestBodyStart (Lokhttp3/Call;)V + public fun requestFailed (Lokhttp3/Call;Ljava/io/IOException;)V + public fun requestHeadersEnd (Lokhttp3/Call;Lokhttp3/Request;)V + public fun requestHeadersStart (Lokhttp3/Call;)V + public fun responseBodyEnd (Lokhttp3/Call;J)V + public fun responseBodyStart (Lokhttp3/Call;)V + public fun responseFailed (Lokhttp3/Call;Ljava/io/IOException;)V + public fun responseHeadersEnd (Lokhttp3/Call;Lokhttp3/Response;)V + public fun responseHeadersStart (Lokhttp3/Call;)V + public fun satisfactionFailure (Lokhttp3/Call;Lokhttp3/Response;)V + public fun secureConnectEnd (Lokhttp3/Call;Lokhttp3/Handshake;)V + public fun secureConnectStart (Lokhttp3/Call;)V +} + +public final class okhttp3/EventListener$Companion { +} + +public abstract interface class okhttp3/EventListener$Factory { + public abstract fun create (Lokhttp3/Call;)Lokhttp3/EventListener; +} + +public abstract interface annotation class okhttp3/ExperimentalOkHttpApi : java/lang/annotation/Annotation { +} + +public final class okhttp3/FormBody : okhttp3/RequestBody { + public static final field Companion Lokhttp3/FormBody$Companion; + public final fun -deprecated_size ()I + public fun contentLength ()J + public fun contentType ()Lokhttp3/MediaType; + public final fun encodedName (I)Ljava/lang/String; + public final fun encodedValue (I)Ljava/lang/String; + public final fun name (I)Ljava/lang/String; + public final fun size ()I + public final fun value (I)Ljava/lang/String; + public fun writeTo (Lokio/BufferedSink;)V +} + +public final class okhttp3/FormBody$Builder { + public fun ()V + public fun (Ljava/nio/charset/Charset;)V + public synthetic fun (Ljava/nio/charset/Charset;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun add (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/FormBody$Builder; + public final fun addEncoded (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/FormBody$Builder; + public final fun build ()Lokhttp3/FormBody; +} + +public final class okhttp3/FormBody$Companion { +} + +public final class okhttp3/Handshake { + public static final field Companion Lokhttp3/Handshake$Companion; + public final fun -deprecated_cipherSuite ()Lokhttp3/CipherSuite; + public final fun -deprecated_localCertificates ()Ljava/util/List; + public final fun -deprecated_localPrincipal ()Ljava/security/Principal; + public final fun -deprecated_peerCertificates ()Ljava/util/List; + public final fun -deprecated_peerPrincipal ()Ljava/security/Principal; + public final fun -deprecated_tlsVersion ()Lokhttp3/TlsVersion; + public final fun cipherSuite ()Lokhttp3/CipherSuite; + public fun equals (Ljava/lang/Object;)Z + public static final fun get (Ljavax/net/ssl/SSLSession;)Lokhttp3/Handshake; + public static final fun get (Lokhttp3/TlsVersion;Lokhttp3/CipherSuite;Ljava/util/List;Ljava/util/List;)Lokhttp3/Handshake; + public fun hashCode ()I + public final fun localCertificates ()Ljava/util/List; + public final fun localPrincipal ()Ljava/security/Principal; + public final fun peerCertificates ()Ljava/util/List; + public final fun peerPrincipal ()Ljava/security/Principal; + public final fun tlsVersion ()Lokhttp3/TlsVersion; + public fun toString ()Ljava/lang/String; +} + +public final class okhttp3/Handshake$Companion { + public final fun -deprecated_get (Ljavax/net/ssl/SSLSession;)Lokhttp3/Handshake; + public final fun get (Ljavax/net/ssl/SSLSession;)Lokhttp3/Handshake; + public final fun get (Lokhttp3/TlsVersion;Lokhttp3/CipherSuite;Ljava/util/List;Ljava/util/List;)Lokhttp3/Handshake; +} + +public final class okhttp3/Headers : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker { + public static final field Companion Lokhttp3/Headers$Companion; + public final fun -deprecated_size ()I + public final fun byteCount ()J + public fun equals (Ljava/lang/Object;)Z + public final fun get (Ljava/lang/String;)Ljava/lang/String; + public final fun getDate (Ljava/lang/String;)Ljava/util/Date; + public final fun getInstant (Ljava/lang/String;)Ljava/time/Instant; + public fun hashCode ()I + public fun iterator ()Ljava/util/Iterator; + public final fun name (I)Ljava/lang/String; + public final fun names ()Ljava/util/Set; + public final fun newBuilder ()Lokhttp3/Headers$Builder; + public static final fun of (Ljava/util/Map;)Lokhttp3/Headers; + public static final fun of ([Ljava/lang/String;)Lokhttp3/Headers; + public final fun size ()I + public final fun toMultimap ()Ljava/util/Map; + public fun toString ()Ljava/lang/String; + public final fun value (I)Ljava/lang/String; + public final fun values (Ljava/lang/String;)Ljava/util/List; +} + +public final class okhttp3/Headers$Builder { + public fun ()V + public final fun add (Ljava/lang/String;)Lokhttp3/Headers$Builder; + public final fun add (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder; + public final fun add (Ljava/lang/String;Ljava/time/Instant;)Lokhttp3/Headers$Builder; + public final fun add (Ljava/lang/String;Ljava/util/Date;)Lokhttp3/Headers$Builder; + public final fun addAll (Lokhttp3/Headers;)Lokhttp3/Headers$Builder; + public final fun addUnsafeNonAscii (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder; + public final fun build ()Lokhttp3/Headers; + public final fun get (Ljava/lang/String;)Ljava/lang/String; + public final fun removeAll (Ljava/lang/String;)Lokhttp3/Headers$Builder; + public final fun set (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Headers$Builder; + public final fun set (Ljava/lang/String;Ljava/time/Instant;)Lokhttp3/Headers$Builder; + public final fun set (Ljava/lang/String;Ljava/util/Date;)Lokhttp3/Headers$Builder; +} + +public final class okhttp3/Headers$Companion { + public final fun -deprecated_of (Ljava/util/Map;)Lokhttp3/Headers; + public final fun -deprecated_of ([Ljava/lang/String;)Lokhttp3/Headers; + public final fun of (Ljava/util/Map;)Lokhttp3/Headers; + public final fun of ([Ljava/lang/String;)Lokhttp3/Headers; +} + +public final class okhttp3/HttpUrl { + public static final field Companion Lokhttp3/HttpUrl$Companion; + public final fun -deprecated_encodedFragment ()Ljava/lang/String; + public final fun -deprecated_encodedPassword ()Ljava/lang/String; + public final fun -deprecated_encodedPath ()Ljava/lang/String; + public final fun -deprecated_encodedPathSegments ()Ljava/util/List; + public final fun -deprecated_encodedQuery ()Ljava/lang/String; + public final fun -deprecated_encodedUsername ()Ljava/lang/String; + public final fun -deprecated_fragment ()Ljava/lang/String; + public final fun -deprecated_host ()Ljava/lang/String; + public final fun -deprecated_password ()Ljava/lang/String; + public final fun -deprecated_pathSegments ()Ljava/util/List; + public final fun -deprecated_pathSize ()I + public final fun -deprecated_port ()I + public final fun -deprecated_query ()Ljava/lang/String; + public final fun -deprecated_queryParameterNames ()Ljava/util/Set; + public final fun -deprecated_querySize ()I + public final fun -deprecated_scheme ()Ljava/lang/String; + public final fun -deprecated_uri ()Ljava/net/URI; + public final fun -deprecated_url ()Ljava/net/URL; + public final fun -deprecated_username ()Ljava/lang/String; + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public static final fun defaultPort (Ljava/lang/String;)I + public final fun encodedFragment ()Ljava/lang/String; + public final fun encodedPassword ()Ljava/lang/String; + public final fun encodedPath ()Ljava/lang/String; + public final fun encodedPathSegments ()Ljava/util/List; + public final fun encodedQuery ()Ljava/lang/String; + public final fun encodedUsername ()Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public final fun fragment ()Ljava/lang/String; + public static final fun get (Ljava/lang/String;)Lokhttp3/HttpUrl; + public static final fun get (Ljava/net/URI;)Lokhttp3/HttpUrl; + public static final fun get (Ljava/net/URL;)Lokhttp3/HttpUrl; + public fun hashCode ()I + public final fun host ()Ljava/lang/String; + public final fun isHttps ()Z + public final fun newBuilder ()Lokhttp3/HttpUrl$Builder; + public final fun newBuilder (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public static final fun parse (Ljava/lang/String;)Lokhttp3/HttpUrl; + public final fun password ()Ljava/lang/String; + public final fun pathSegments ()Ljava/util/List; + public final fun pathSize ()I + public final fun port ()I + public final fun query ()Ljava/lang/String; + public final fun queryParameter (Ljava/lang/String;)Ljava/lang/String; + public final fun queryParameterName (I)Ljava/lang/String; + public final fun queryParameterNames ()Ljava/util/Set; + public final fun queryParameterValue (I)Ljava/lang/String; + public final fun queryParameterValues (Ljava/lang/String;)Ljava/util/List; + public final fun querySize ()I + public final fun redact ()Ljava/lang/String; + public final fun resolve (Ljava/lang/String;)Lokhttp3/HttpUrl; + public final fun scheme ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; + public final fun topPrivateDomain ()Ljava/lang/String; + public final fun uri ()Ljava/net/URI; + public final fun url ()Ljava/net/URL; + public final fun username ()Ljava/lang/String; +} + +public final class okhttp3/HttpUrl$Builder { + public fun ()V + public final fun addEncodedPathSegment (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun addEncodedPathSegments (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun addEncodedQueryParameter (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun addPathSegment (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun addPathSegments (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun addQueryParameter (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun build ()Lokhttp3/HttpUrl; + public final fun encodedFragment (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun encodedPassword (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun encodedPath (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun encodedQuery (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun encodedUsername (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun fragment (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun host (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun password (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun port (I)Lokhttp3/HttpUrl$Builder; + public final fun query (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun removeAllEncodedQueryParameters (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun removeAllQueryParameters (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun removePathSegment (I)Lokhttp3/HttpUrl$Builder; + public final fun scheme (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun setEncodedPathSegment (ILjava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun setEncodedQueryParameter (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun setPathSegment (ILjava/lang/String;)Lokhttp3/HttpUrl$Builder; + public final fun setQueryParameter (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; + public fun toString ()Ljava/lang/String; + public final fun username (Ljava/lang/String;)Lokhttp3/HttpUrl$Builder; +} + +public final class okhttp3/HttpUrl$Companion { + public final fun -deprecated_get (Ljava/lang/String;)Lokhttp3/HttpUrl; + public final fun -deprecated_get (Ljava/net/URI;)Lokhttp3/HttpUrl; + public final fun -deprecated_get (Ljava/net/URL;)Lokhttp3/HttpUrl; + public final fun -deprecated_parse (Ljava/lang/String;)Lokhttp3/HttpUrl; + public final fun defaultPort (Ljava/lang/String;)I + public final fun get (Ljava/lang/String;)Lokhttp3/HttpUrl; + public final fun get (Ljava/net/URI;)Lokhttp3/HttpUrl; + public final fun get (Ljava/net/URL;)Lokhttp3/HttpUrl; + public final fun parse (Ljava/lang/String;)Lokhttp3/HttpUrl; +} + +public abstract interface class okhttp3/Interceptor { + public static final field Companion Lokhttp3/Interceptor$Companion; + public abstract fun intercept (Lokhttp3/Interceptor$Chain;)Lokhttp3/Response; +} + +public abstract interface class okhttp3/Interceptor$Chain { + public abstract fun call ()Lokhttp3/Call; + public abstract fun connectTimeoutMillis ()I + public abstract fun connection ()Lokhttp3/Connection; + public abstract fun proceed (Lokhttp3/Request;)Lokhttp3/Response; + public abstract fun readTimeoutMillis ()I + public abstract fun request ()Lokhttp3/Request; + public abstract fun withConnectTimeout (ILjava/util/concurrent/TimeUnit;)Lokhttp3/Interceptor$Chain; + public abstract fun withReadTimeout (ILjava/util/concurrent/TimeUnit;)Lokhttp3/Interceptor$Chain; + public abstract fun withWriteTimeout (ILjava/util/concurrent/TimeUnit;)Lokhttp3/Interceptor$Chain; + public abstract fun writeTimeoutMillis ()I +} + +public final class okhttp3/Interceptor$Companion { + public final fun invoke (Lkotlin/jvm/functions/Function1;)Lokhttp3/Interceptor; +} + +public final class okhttp3/MediaType { + public static final field Companion Lokhttp3/MediaType$Companion; + public final fun -deprecated_subtype ()Ljava/lang/String; + public final fun -deprecated_type ()Ljava/lang/String; + public final fun charset ()Ljava/nio/charset/Charset; + public final fun charset (Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset; + public static synthetic fun charset$default (Lokhttp3/MediaType;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/nio/charset/Charset; + public fun equals (Ljava/lang/Object;)Z + public static final fun get (Ljava/lang/String;)Lokhttp3/MediaType; + public fun hashCode ()I + public final fun parameter (Ljava/lang/String;)Ljava/lang/String; + public static final fun parse (Ljava/lang/String;)Lokhttp3/MediaType; + public final fun subtype ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; + public final fun type ()Ljava/lang/String; +} + +public final class okhttp3/MediaType$Companion { + public final fun -deprecated_get (Ljava/lang/String;)Lokhttp3/MediaType; + public final fun -deprecated_parse (Ljava/lang/String;)Lokhttp3/MediaType; + public final fun get (Ljava/lang/String;)Lokhttp3/MediaType; + public final fun parse (Ljava/lang/String;)Lokhttp3/MediaType; +} + +public final class okhttp3/MultipartBody : okhttp3/RequestBody { + public static final field ALTERNATIVE Lokhttp3/MediaType; + public static final field Companion Lokhttp3/MultipartBody$Companion; + public static final field DIGEST Lokhttp3/MediaType; + public static final field FORM Lokhttp3/MediaType; + public static final field MIXED Lokhttp3/MediaType; + public static final field PARALLEL Lokhttp3/MediaType; + public final fun -deprecated_boundary ()Ljava/lang/String; + public final fun -deprecated_parts ()Ljava/util/List; + public final fun -deprecated_size ()I + public final fun -deprecated_type ()Lokhttp3/MediaType; + public final fun boundary ()Ljava/lang/String; + public fun contentLength ()J + public fun contentType ()Lokhttp3/MediaType; + public fun isOneShot ()Z + public final fun part (I)Lokhttp3/MultipartBody$Part; + public final fun parts ()Ljava/util/List; + public final fun size ()I + public final fun type ()Lokhttp3/MediaType; + public fun writeTo (Lokio/BufferedSink;)V +} + +public final class okhttp3/MultipartBody$Builder { + public fun ()V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun addFormDataPart (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/MultipartBody$Builder; + public final fun addFormDataPart (Ljava/lang/String;Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Builder; + public final fun addPart (Lokhttp3/Headers;Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Builder; + public final fun addPart (Lokhttp3/MultipartBody$Part;)Lokhttp3/MultipartBody$Builder; + public final fun addPart (Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Builder; + public final fun build ()Lokhttp3/MultipartBody; + public final fun setType (Lokhttp3/MediaType;)Lokhttp3/MultipartBody$Builder; +} + +public final class okhttp3/MultipartBody$Companion { +} + +public final class okhttp3/MultipartBody$Part { + public static final field Companion Lokhttp3/MultipartBody$Part$Companion; + public final fun -deprecated_body ()Lokhttp3/RequestBody; + public final fun -deprecated_headers ()Lokhttp3/Headers; + public synthetic fun (Lokhttp3/Headers;Lokhttp3/RequestBody;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun body ()Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/Headers;Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Part; + public static final fun create (Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Part; + public static final fun createFormData (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/MultipartBody$Part; + public static final fun createFormData (Ljava/lang/String;Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Part; + public final fun headers ()Lokhttp3/Headers; +} + +public final class okhttp3/MultipartBody$Part$Companion { + public final fun create (Lokhttp3/Headers;Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Part; + public final fun create (Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Part; + public final fun createFormData (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/MultipartBody$Part; + public final fun createFormData (Ljava/lang/String;Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/MultipartBody$Part; +} + +public final class okhttp3/MultipartReader : java/io/Closeable { + public fun (Lokhttp3/ResponseBody;)V + public fun (Lokio/BufferedSource;Ljava/lang/String;)V + public final fun boundary ()Ljava/lang/String; + public fun close ()V + public final fun nextPart ()Lokhttp3/MultipartReader$Part; +} + +public final class okhttp3/MultipartReader$Part : java/io/Closeable { + public fun (Lokhttp3/Headers;Lokio/BufferedSource;)V + public final fun body ()Lokio/BufferedSource; + public fun close ()V + public final fun headers ()Lokhttp3/Headers; +} + +public final class okhttp3/OkHttp { + public static final field INSTANCE Lokhttp3/OkHttp; + public static final field VERSION Ljava/lang/String; +} + +public class okhttp3/OkHttpClient : okhttp3/Call$Factory, okhttp3/WebSocket$Factory { + public static final field Companion Lokhttp3/OkHttpClient$Companion; + public final fun -deprecated_authenticator ()Lokhttp3/Authenticator; + public final fun -deprecated_cache ()Lokhttp3/Cache; + public final fun -deprecated_callTimeoutMillis ()I + public final fun -deprecated_certificatePinner ()Lokhttp3/CertificatePinner; + public final fun -deprecated_connectTimeoutMillis ()I + public final fun -deprecated_connectionPool ()Lokhttp3/ConnectionPool; + public final fun -deprecated_connectionSpecs ()Ljava/util/List; + public final fun -deprecated_cookieJar ()Lokhttp3/CookieJar; + public final fun -deprecated_dispatcher ()Lokhttp3/Dispatcher; + public final fun -deprecated_dns ()Lokhttp3/Dns; + public final fun -deprecated_eventListenerFactory ()Lokhttp3/EventListener$Factory; + public final fun -deprecated_followRedirects ()Z + public final fun -deprecated_followSslRedirects ()Z + public final fun -deprecated_hostnameVerifier ()Ljavax/net/ssl/HostnameVerifier; + public final fun -deprecated_interceptors ()Ljava/util/List; + public final fun -deprecated_networkInterceptors ()Ljava/util/List; + public final fun -deprecated_pingIntervalMillis ()I + public final fun -deprecated_protocols ()Ljava/util/List; + public final fun -deprecated_proxy ()Ljava/net/Proxy; + public final fun -deprecated_proxyAuthenticator ()Lokhttp3/Authenticator; + public final fun -deprecated_proxySelector ()Ljava/net/ProxySelector; + public final fun -deprecated_readTimeoutMillis ()I + public final fun -deprecated_retryOnConnectionFailure ()Z + public final fun -deprecated_socketFactory ()Ljavax/net/SocketFactory; + public final fun -deprecated_sslSocketFactory ()Ljavax/net/ssl/SSLSocketFactory; + public final fun -deprecated_writeTimeoutMillis ()I + public fun ()V + public final fun address (Lokhttp3/HttpUrl;)Lokhttp3/Address; + public final fun authenticator ()Lokhttp3/Authenticator; + public final fun cache ()Lokhttp3/Cache; + public final fun callTimeoutMillis ()I + public final fun certificateChainCleaner ()Lokhttp3/internal/tls/CertificateChainCleaner; + public final fun certificatePinner ()Lokhttp3/CertificatePinner; + public final fun connectTimeoutMillis ()I + public final fun connectionPool ()Lokhttp3/ConnectionPool; + public final fun connectionSpecs ()Ljava/util/List; + public final fun cookieJar ()Lokhttp3/CookieJar; + public final fun dispatcher ()Lokhttp3/Dispatcher; + public final fun dns ()Lokhttp3/Dns; + public final fun eventListenerFactory ()Lokhttp3/EventListener$Factory; + public final fun fastFallback ()Z + public final fun followRedirects ()Z + public final fun followSslRedirects ()Z + public final fun hostnameVerifier ()Ljavax/net/ssl/HostnameVerifier; + public final fun interceptors ()Ljava/util/List; + public final fun minWebSocketMessageToCompress ()J + public final fun networkInterceptors ()Ljava/util/List; + public fun newBuilder ()Lokhttp3/OkHttpClient$Builder; + public fun newCall (Lokhttp3/Request;)Lokhttp3/Call; + public fun newWebSocket (Lokhttp3/Request;Lokhttp3/WebSocketListener;)Lokhttp3/WebSocket; + public final fun pingIntervalMillis ()I + public final fun protocols ()Ljava/util/List; + public final fun proxy ()Ljava/net/Proxy; + public final fun proxyAuthenticator ()Lokhttp3/Authenticator; + public final fun proxySelector ()Ljava/net/ProxySelector; + public final fun readTimeoutMillis ()I + public final fun retryOnConnectionFailure ()Z + public final fun socketFactory ()Ljavax/net/SocketFactory; + public final fun sslSocketFactory ()Ljavax/net/ssl/SSLSocketFactory; + public final fun webSocketCloseTimeout ()I + public final fun writeTimeoutMillis ()I + public final fun x509TrustManager ()Ljavax/net/ssl/X509TrustManager; +} + +public final class okhttp3/OkHttpClient$Builder { + public final fun -addInterceptor (Lkotlin/jvm/functions/Function1;)Lokhttp3/OkHttpClient$Builder; + public final fun -addNetworkInterceptor (Lkotlin/jvm/functions/Function1;)Lokhttp3/OkHttpClient$Builder; + public fun ()V + public final fun addInterceptor (Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder; + public final fun addNetworkInterceptor (Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder; + public final fun authenticator (Lokhttp3/Authenticator;)Lokhttp3/OkHttpClient$Builder; + public final fun build ()Lokhttp3/OkHttpClient; + public final fun cache (Lokhttp3/Cache;)Lokhttp3/OkHttpClient$Builder; + public final fun callTimeout (JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder; + public final fun callTimeout (Ljava/time/Duration;)Lokhttp3/OkHttpClient$Builder; + public final fun callTimeout-LRDsOJo (J)Lokhttp3/OkHttpClient$Builder; + public final fun certificatePinner (Lokhttp3/CertificatePinner;)Lokhttp3/OkHttpClient$Builder; + public final fun connectTimeout (JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder; + public final fun connectTimeout (Ljava/time/Duration;)Lokhttp3/OkHttpClient$Builder; + public final fun connectTimeout-LRDsOJo (J)Lokhttp3/OkHttpClient$Builder; + public final fun connectionPool (Lokhttp3/ConnectionPool;)Lokhttp3/OkHttpClient$Builder; + public final fun connectionSpecs (Ljava/util/List;)Lokhttp3/OkHttpClient$Builder; + public final fun cookieJar (Lokhttp3/CookieJar;)Lokhttp3/OkHttpClient$Builder; + public final fun dispatcher (Lokhttp3/Dispatcher;)Lokhttp3/OkHttpClient$Builder; + public final fun dns (Lokhttp3/Dns;)Lokhttp3/OkHttpClient$Builder; + public final fun eventListener (Lokhttp3/EventListener;)Lokhttp3/OkHttpClient$Builder; + public final fun eventListenerFactory (Lokhttp3/EventListener$Factory;)Lokhttp3/OkHttpClient$Builder; + public final fun fastFallback (Z)Lokhttp3/OkHttpClient$Builder; + public final fun followRedirects (Z)Lokhttp3/OkHttpClient$Builder; + public final fun followSslRedirects (Z)Lokhttp3/OkHttpClient$Builder; + public final fun hostnameVerifier (Ljavax/net/ssl/HostnameVerifier;)Lokhttp3/OkHttpClient$Builder; + public final fun interceptors ()Ljava/util/List; + public final fun minWebSocketMessageToCompress (J)Lokhttp3/OkHttpClient$Builder; + public final fun networkInterceptors ()Ljava/util/List; + public final fun pingInterval (JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder; + public final fun pingInterval (Ljava/time/Duration;)Lokhttp3/OkHttpClient$Builder; + public final fun pingInterval-LRDsOJo (J)Lokhttp3/OkHttpClient$Builder; + public final fun protocols (Ljava/util/List;)Lokhttp3/OkHttpClient$Builder; + public final fun proxy (Ljava/net/Proxy;)Lokhttp3/OkHttpClient$Builder; + public final fun proxyAuthenticator (Lokhttp3/Authenticator;)Lokhttp3/OkHttpClient$Builder; + public final fun proxySelector (Ljava/net/ProxySelector;)Lokhttp3/OkHttpClient$Builder; + public final fun readTimeout (JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder; + public final fun readTimeout (Ljava/time/Duration;)Lokhttp3/OkHttpClient$Builder; + public final fun readTimeout-LRDsOJo (J)Lokhttp3/OkHttpClient$Builder; + public final fun retryOnConnectionFailure (Z)Lokhttp3/OkHttpClient$Builder; + public final fun socketFactory (Ljavax/net/SocketFactory;)Lokhttp3/OkHttpClient$Builder; + public final fun sslSocketFactory (Ljavax/net/ssl/SSLSocketFactory;)Lokhttp3/OkHttpClient$Builder; + public final fun sslSocketFactory (Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; + public final fun webSocketCloseTimeout (JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder; + public final fun webSocketCloseTimeout (Ljava/time/Duration;)Lokhttp3/OkHttpClient$Builder; + public final fun webSocketCloseTimeout-LRDsOJo (J)Lokhttp3/OkHttpClient$Builder; + public final fun writeTimeout (JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder; + public final fun writeTimeout (Ljava/time/Duration;)Lokhttp3/OkHttpClient$Builder; + public final fun writeTimeout-LRDsOJo (J)Lokhttp3/OkHttpClient$Builder; +} + +public final class okhttp3/OkHttpClient$Companion { +} + +public final class okhttp3/Protocol : java/lang/Enum { + public static final field Companion Lokhttp3/Protocol$Companion; + public static final field H2_PRIOR_KNOWLEDGE Lokhttp3/Protocol; + public static final field HTTP_1_0 Lokhttp3/Protocol; + public static final field HTTP_1_1 Lokhttp3/Protocol; + public static final field HTTP_2 Lokhttp3/Protocol; + public static final field HTTP_3 Lokhttp3/Protocol; + public static final field QUIC Lokhttp3/Protocol; + public static final field SPDY_3 Lokhttp3/Protocol; + public static final fun get (Ljava/lang/String;)Lokhttp3/Protocol; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public fun toString ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lokhttp3/Protocol; + public static fun values ()[Lokhttp3/Protocol; +} + +public final class okhttp3/Protocol$Companion { + public final fun get (Ljava/lang/String;)Lokhttp3/Protocol; +} + +public final class okhttp3/Request { + public final fun -deprecated_body ()Lokhttp3/RequestBody; + public final fun -deprecated_cacheControl ()Lokhttp3/CacheControl; + public final fun -deprecated_headers ()Lokhttp3/Headers; + public final fun -deprecated_method ()Ljava/lang/String; + public final fun -deprecated_url ()Lokhttp3/HttpUrl; + public fun (Lokhttp3/HttpUrl;Lokhttp3/Headers;Ljava/lang/String;Lokhttp3/RequestBody;)V + public synthetic fun (Lokhttp3/HttpUrl;Lokhttp3/Headers;Ljava/lang/String;Lokhttp3/RequestBody;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun body ()Lokhttp3/RequestBody; + public final fun cacheControl ()Lokhttp3/CacheControl; + public final fun cacheUrlOverride ()Lokhttp3/HttpUrl; + public final fun header (Ljava/lang/String;)Ljava/lang/String; + public final fun headers ()Lokhttp3/Headers; + public final fun headers (Ljava/lang/String;)Ljava/util/List; + public final fun isHttps ()Z + public final fun method ()Ljava/lang/String; + public final fun newBuilder ()Lokhttp3/Request$Builder; + public final fun tag ()Ljava/lang/Object; + public final fun tag (Ljava/lang/Class;)Ljava/lang/Object; + public final fun tag (Lkotlin/reflect/KClass;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; + public final fun url ()Lokhttp3/HttpUrl; +} + +public class okhttp3/Request$Builder { + public fun ()V + public fun addHeader (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder; + public fun build ()Lokhttp3/Request; + public fun cacheControl (Lokhttp3/CacheControl;)Lokhttp3/Request$Builder; + public final fun cacheUrlOverride (Lokhttp3/HttpUrl;)Lokhttp3/Request$Builder; + public final fun delete ()Lokhttp3/Request$Builder; + public fun delete (Lokhttp3/RequestBody;)Lokhttp3/Request$Builder; + public static synthetic fun delete$default (Lokhttp3/Request$Builder;Lokhttp3/RequestBody;ILjava/lang/Object;)Lokhttp3/Request$Builder; + public fun get ()Lokhttp3/Request$Builder; + public fun head ()Lokhttp3/Request$Builder; + public fun header (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder; + public fun headers (Lokhttp3/Headers;)Lokhttp3/Request$Builder; + public fun method (Ljava/lang/String;Lokhttp3/RequestBody;)Lokhttp3/Request$Builder; + public fun patch (Lokhttp3/RequestBody;)Lokhttp3/Request$Builder; + public fun post (Lokhttp3/RequestBody;)Lokhttp3/Request$Builder; + public fun put (Lokhttp3/RequestBody;)Lokhttp3/Request$Builder; + public fun removeHeader (Ljava/lang/String;)Lokhttp3/Request$Builder; + public fun tag (Ljava/lang/Class;Ljava/lang/Object;)Lokhttp3/Request$Builder; + public fun tag (Ljava/lang/Object;)Lokhttp3/Request$Builder; + public final fun tag (Lkotlin/reflect/KClass;Ljava/lang/Object;)Lokhttp3/Request$Builder; + public fun url (Ljava/lang/String;)Lokhttp3/Request$Builder; + public fun url (Ljava/net/URL;)Lokhttp3/Request$Builder; + public fun url (Lokhttp3/HttpUrl;)Lokhttp3/Request$Builder; +} + +public abstract class okhttp3/RequestBody { + public static final field Companion Lokhttp3/RequestBody$Companion; + public fun ()V + public fun contentLength ()J + public abstract fun contentType ()Lokhttp3/MediaType; + public static final fun create (Ljava/io/File;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public static final fun create (Ljava/io/FileDescriptor;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public static final fun create (Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/MediaType;Ljava/io/File;)Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/MediaType;Ljava/lang/String;)Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/MediaType;Lokio/ByteString;)Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/MediaType;[B)Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/MediaType;[BI)Lokhttp3/RequestBody; + public static final fun create (Lokhttp3/MediaType;[BII)Lokhttp3/RequestBody; + public static final fun create (Lokio/ByteString;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public static final fun create (Lokio/Path;Lokio/FileSystem;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public static final fun create ([B)Lokhttp3/RequestBody; + public static final fun create ([BLokhttp3/MediaType;)Lokhttp3/RequestBody; + public static final fun create ([BLokhttp3/MediaType;I)Lokhttp3/RequestBody; + public static final fun create ([BLokhttp3/MediaType;II)Lokhttp3/RequestBody; + public static final fun gzip (Lokhttp3/RequestBody;)Lokhttp3/RequestBody; + public fun isDuplex ()Z + public fun isOneShot ()Z + public abstract fun writeTo (Lokio/BufferedSink;)V +} + +public final class okhttp3/RequestBody$Companion { + public final fun create (Ljava/io/File;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public final fun create (Ljava/io/FileDescriptor;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public final fun create (Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public final fun create (Lokhttp3/MediaType;Ljava/io/File;)Lokhttp3/RequestBody; + public final fun create (Lokhttp3/MediaType;Ljava/lang/String;)Lokhttp3/RequestBody; + public final fun create (Lokhttp3/MediaType;Lokio/ByteString;)Lokhttp3/RequestBody; + public final fun create (Lokhttp3/MediaType;[B)Lokhttp3/RequestBody; + public final fun create (Lokhttp3/MediaType;[BI)Lokhttp3/RequestBody; + public final fun create (Lokhttp3/MediaType;[BII)Lokhttp3/RequestBody; + public final fun create (Lokio/ByteString;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public final fun create (Lokio/Path;Lokio/FileSystem;Lokhttp3/MediaType;)Lokhttp3/RequestBody; + public final fun create ([B)Lokhttp3/RequestBody; + public final fun create ([BLokhttp3/MediaType;)Lokhttp3/RequestBody; + public final fun create ([BLokhttp3/MediaType;I)Lokhttp3/RequestBody; + public final fun create ([BLokhttp3/MediaType;II)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;Ljava/io/File;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;Ljava/io/FileDescriptor;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;Ljava/lang/String;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;Lokhttp3/MediaType;[BIIILjava/lang/Object;)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;Lokio/ByteString;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;Lokio/Path;Lokio/FileSystem;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/RequestBody; + public static synthetic fun create$default (Lokhttp3/RequestBody$Companion;[BLokhttp3/MediaType;IIILjava/lang/Object;)Lokhttp3/RequestBody; + public final fun gzip (Lokhttp3/RequestBody;)Lokhttp3/RequestBody; +} + +public final class okhttp3/Response : java/io/Closeable { + public final fun -deprecated_body ()Lokhttp3/ResponseBody; + public final fun -deprecated_cacheControl ()Lokhttp3/CacheControl; + public final fun -deprecated_cacheResponse ()Lokhttp3/Response; + public final fun -deprecated_code ()I + public final fun -deprecated_handshake ()Lokhttp3/Handshake; + public final fun -deprecated_headers ()Lokhttp3/Headers; + public final fun -deprecated_message ()Ljava/lang/String; + public final fun -deprecated_networkResponse ()Lokhttp3/Response; + public final fun -deprecated_priorResponse ()Lokhttp3/Response; + public final fun -deprecated_protocol ()Lokhttp3/Protocol; + public final fun -deprecated_receivedResponseAtMillis ()J + public final fun -deprecated_request ()Lokhttp3/Request; + public final fun -deprecated_sentRequestAtMillis ()J + public final fun body ()Lokhttp3/ResponseBody; + public final fun cacheControl ()Lokhttp3/CacheControl; + public final fun cacheResponse ()Lokhttp3/Response; + public final fun challenges ()Ljava/util/List; + public fun close ()V + public final fun code ()I + public final fun handshake ()Lokhttp3/Handshake; + public final fun header (Ljava/lang/String;)Ljava/lang/String; + public final fun header (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + public static synthetic fun header$default (Lokhttp3/Response;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String; + public final fun headers ()Lokhttp3/Headers; + public final fun headers (Ljava/lang/String;)Ljava/util/List; + public final fun isRedirect ()Z + public final fun isSuccessful ()Z + public final fun message ()Ljava/lang/String; + public final fun networkResponse ()Lokhttp3/Response; + public final fun newBuilder ()Lokhttp3/Response$Builder; + public final fun peekBody (J)Lokhttp3/ResponseBody; + public final fun priorResponse ()Lokhttp3/Response; + public final fun protocol ()Lokhttp3/Protocol; + public final fun receivedResponseAtMillis ()J + public final fun request ()Lokhttp3/Request; + public final fun sentRequestAtMillis ()J + public fun toString ()Ljava/lang/String; + public final fun trailers ()Lokhttp3/Headers; +} + +public class okhttp3/Response$Builder { + public fun ()V + public fun addHeader (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Response$Builder; + public fun body (Lokhttp3/ResponseBody;)Lokhttp3/Response$Builder; + public fun build ()Lokhttp3/Response; + public fun cacheResponse (Lokhttp3/Response;)Lokhttp3/Response$Builder; + public fun code (I)Lokhttp3/Response$Builder; + public fun handshake (Lokhttp3/Handshake;)Lokhttp3/Response$Builder; + public fun header (Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Response$Builder; + public fun headers (Lokhttp3/Headers;)Lokhttp3/Response$Builder; + public fun message (Ljava/lang/String;)Lokhttp3/Response$Builder; + public fun networkResponse (Lokhttp3/Response;)Lokhttp3/Response$Builder; + public fun priorResponse (Lokhttp3/Response;)Lokhttp3/Response$Builder; + public fun protocol (Lokhttp3/Protocol;)Lokhttp3/Response$Builder; + public fun receivedResponseAtMillis (J)Lokhttp3/Response$Builder; + public fun removeHeader (Ljava/lang/String;)Lokhttp3/Response$Builder; + public fun request (Lokhttp3/Request;)Lokhttp3/Response$Builder; + public fun sentRequestAtMillis (J)Lokhttp3/Response$Builder; + public fun trailers (Lkotlin/jvm/functions/Function0;)Lokhttp3/Response$Builder; +} + +public abstract class okhttp3/ResponseBody : java/io/Closeable { + public static final field Companion Lokhttp3/ResponseBody$Companion; + public fun ()V + public final fun byteStream ()Ljava/io/InputStream; + public final fun byteString ()Lokio/ByteString; + public final fun bytes ()[B + public final fun charStream ()Ljava/io/Reader; + public fun close ()V + public abstract fun contentLength ()J + public abstract fun contentType ()Lokhttp3/MediaType; + public static final fun create (Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/ResponseBody; + public static final fun create (Lokhttp3/MediaType;JLokio/BufferedSource;)Lokhttp3/ResponseBody; + public static final fun create (Lokhttp3/MediaType;Ljava/lang/String;)Lokhttp3/ResponseBody; + public static final fun create (Lokhttp3/MediaType;Lokio/ByteString;)Lokhttp3/ResponseBody; + public static final fun create (Lokhttp3/MediaType;[B)Lokhttp3/ResponseBody; + public static final fun create (Lokio/BufferedSource;Lokhttp3/MediaType;J)Lokhttp3/ResponseBody; + public static final fun create (Lokio/ByteString;Lokhttp3/MediaType;)Lokhttp3/ResponseBody; + public static final fun create ([BLokhttp3/MediaType;)Lokhttp3/ResponseBody; + public abstract fun source ()Lokio/BufferedSource; + public final fun string ()Ljava/lang/String; +} + +public final class okhttp3/ResponseBody$Companion { + public final fun create (Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/ResponseBody; + public final fun create (Lokhttp3/MediaType;JLokio/BufferedSource;)Lokhttp3/ResponseBody; + public final fun create (Lokhttp3/MediaType;Ljava/lang/String;)Lokhttp3/ResponseBody; + public final fun create (Lokhttp3/MediaType;Lokio/ByteString;)Lokhttp3/ResponseBody; + public final fun create (Lokhttp3/MediaType;[B)Lokhttp3/ResponseBody; + public final fun create (Lokio/BufferedSource;Lokhttp3/MediaType;J)Lokhttp3/ResponseBody; + public final fun create (Lokio/ByteString;Lokhttp3/MediaType;)Lokhttp3/ResponseBody; + public final fun create ([BLokhttp3/MediaType;)Lokhttp3/ResponseBody; + public static synthetic fun create$default (Lokhttp3/ResponseBody$Companion;Ljava/lang/String;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/ResponseBody; + public static synthetic fun create$default (Lokhttp3/ResponseBody$Companion;Lokio/BufferedSource;Lokhttp3/MediaType;JILjava/lang/Object;)Lokhttp3/ResponseBody; + public static synthetic fun create$default (Lokhttp3/ResponseBody$Companion;Lokio/ByteString;Lokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/ResponseBody; + public static synthetic fun create$default (Lokhttp3/ResponseBody$Companion;[BLokhttp3/MediaType;ILjava/lang/Object;)Lokhttp3/ResponseBody; +} + +public final class okhttp3/Route { + public final fun -deprecated_address ()Lokhttp3/Address; + public final fun -deprecated_proxy ()Ljava/net/Proxy; + public final fun -deprecated_socketAddress ()Ljava/net/InetSocketAddress; + public fun (Lokhttp3/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V + public final fun address ()Lokhttp3/Address; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun proxy ()Ljava/net/Proxy; + public final fun requiresTunnel ()Z + public final fun socketAddress ()Ljava/net/InetSocketAddress; + public fun toString ()Ljava/lang/String; +} + +public final class okhttp3/TlsVersion : java/lang/Enum { + public static final field Companion Lokhttp3/TlsVersion$Companion; + public static final field SSL_3_0 Lokhttp3/TlsVersion; + public static final field TLS_1_0 Lokhttp3/TlsVersion; + public static final field TLS_1_1 Lokhttp3/TlsVersion; + public static final field TLS_1_2 Lokhttp3/TlsVersion; + public static final field TLS_1_3 Lokhttp3/TlsVersion; + public final fun -deprecated_javaName ()Ljava/lang/String; + public static final fun forJavaName (Ljava/lang/String;)Lokhttp3/TlsVersion; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun javaName ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lokhttp3/TlsVersion; + public static fun values ()[Lokhttp3/TlsVersion; +} + +public final class okhttp3/TlsVersion$Companion { + public final fun forJavaName (Ljava/lang/String;)Lokhttp3/TlsVersion; +} + +public abstract interface class okhttp3/WebSocket { + public abstract fun cancel ()V + public abstract fun close (ILjava/lang/String;)Z + public abstract fun queueSize ()J + public abstract fun request ()Lokhttp3/Request; + public abstract fun send (Ljava/lang/String;)Z + public abstract fun send (Lokio/ByteString;)Z +} + +public abstract interface class okhttp3/WebSocket$Factory { + public abstract fun newWebSocket (Lokhttp3/Request;Lokhttp3/WebSocketListener;)Lokhttp3/WebSocket; +} + +public abstract class okhttp3/WebSocketListener { + public fun ()V + public fun onClosed (Lokhttp3/WebSocket;ILjava/lang/String;)V + public fun onClosing (Lokhttp3/WebSocket;ILjava/lang/String;)V + public fun onFailure (Lokhttp3/WebSocket;Ljava/lang/Throwable;Lokhttp3/Response;)V + public fun onMessage (Lokhttp3/WebSocket;Ljava/lang/String;)V + public fun onMessage (Lokhttp3/WebSocket;Lokio/ByteString;)V + public fun onOpen (Lokhttp3/WebSocket;Lokhttp3/Response;)V +} + diff --git a/okhttp/build.gradle.kts b/okhttp/build.gradle.kts index e1214a6fc1fe..cd9b9e66a8c7 100644 --- a/okhttp/build.gradle.kts +++ b/okhttp/build.gradle.kts @@ -1,15 +1,24 @@ +@file:Suppress("UnstableApiUsage") + +import aQute.bnd.gradle.BundleTaskExtension import com.vanniktech.maven.publish.JavadocJar -import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.KotlinMultiplatform +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import ru.vyarus.gradle.plugin.animalsniffer.AnimalSnifferExtension import java.util.Base64 plugins { - kotlin("jvm") + kotlin("multiplatform") + id("com.android.library") kotlin("plugin.serialization") id("org.jetbrains.dokka") id("com.vanniktech.maven.publish.base") id("binary-compatibility-validator") } +val platform = System.getProperty("okhttp.platform", "jdk9") +val testJavaVersion = System.getProperty("test.java.version", "21").toInt() + fun ByteArray.toByteStringExpression(): String { return "\"${Base64.getEncoder().encodeToString(this@toByteStringExpression)}\".decodeBase64()!!" } @@ -17,15 +26,15 @@ fun ByteArray.toByteStringExpression(): String { val copyKotlinTemplates = tasks.register("copyKotlinTemplates") { val kotlinTemplatesOutput = layout.buildDirectory.dir("generated/sources/kotlinTemplates") - from("src/main/kotlinTemplates") + from("src/commonJvmAndroid/kotlinTemplates") into(kotlinTemplatesOutput) // Tag as an input to regenerate after an update - inputs.file("src/test/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz") + inputs.file("src/jvmTest/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz") filteringCharset = Charsets.UTF_8.toString() - val databaseGz = project.file("src/test/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz") + val databaseGz = project.file("src/jvmTest/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz") val listBytes = databaseGz.readBytes().toByteStringExpression() expand( @@ -52,125 +61,192 @@ val generateIdnaMappingTable = tasks.register("generateIdnaMappingTabl } kotlin { + jvmToolchain(8) + + jvm { +// withJava() /* <- cannot be used when the Android Plugin is present */ + } + + androidTarget { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + } + } + sourceSets { - getByName("main") { + val commonJvmAndroid = create("commonJvmAndroid") { + dependsOn(commonMain.get()) + kotlin.srcDir(copyKotlinTemplates.map { it.outputs }) kotlin.srcDir(generateIdnaMappingTable.map { it.outputs }) + + dependencies { + api(libs.squareup.okio) + api(libs.kotlin.stdlib) + + compileOnly(libs.findbugs.jsr305) + compileOnly(libs.animalsniffer.annotations) + } + } + + androidMain { + dependsOn(commonJvmAndroid) + dependencies { + compileOnly(libs.bouncycastle.bcprov) + compileOnly(libs.bouncycastle.bctls) + compileOnly(libs.conscrypt.openjdk) + } + } + + jvmMain { + dependsOn(commonJvmAndroid) + + dependencies { + // These compileOnly dependencies must also be listed in the OSGi configuration above. + compileOnly(libs.conscrypt.openjdk) + compileOnly(libs.bouncycastle.bcprov) + compileOnly(libs.bouncycastle.bctls) + + // graal build support + compileOnly(libs.nativeImageSvm) + compileOnly(libs.openjsse) + } + } + + val jvmTest by getting { + dependencies { + implementation(projects.okhttpTestingSupport) + implementation(libs.assertk) + implementation(libs.kotlin.test.annotations) + implementation(libs.kotlin.test.common) + implementation(libs.kotlinx.serialization.core) + implementation(libs.kotlinx.serialization.json) + implementation(projects.okhttpJavaNetCookiejar) + implementation(projects.okhttpTls) + implementation(projects.okhttpUrlconnection) + implementation(projects.mockwebserver3) + implementation(projects.mockwebserver3Junit4) + implementation(projects.mockwebserver3Junit5) + implementation(projects.mockwebserver) + implementation(projects.loggingInterceptor) + implementation(projects.okhttpBrotli) + implementation(projects.okhttpDnsoverhttps) + implementation(projects.okhttpIdnaMappingTable) + implementation(projects.okhttpSse) + implementation(projects.okhttpCoroutines) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.squareup.moshi) + implementation(libs.squareup.moshi.kotlin) + implementation(libs.squareup.okio.fakefilesystem) + implementation(libs.conscrypt.openjdk) + implementation(libs.junit) + implementation(libs.junit.jupiter.api) + implementation(libs.junit.jupiter.params) + implementation(libs.kotlin.test.junit) + implementation(libs.openjsse) + compileOnly(libs.findbugs.jsr305) + + implementation(libs.junit.jupiter.engine) + implementation(libs.junit.vintage.engine) + + if (platform == "conscrypt") { + implementation(rootProject.libs.conscrypt.openjdk) + } else if (platform == "openjsse") { + implementation(rootProject.libs.openjsse) + } + } } } } -project.applyOsgi( - "Export-Package: okhttp3,okhttp3.internal.*;okhttpinternal=true;mandatory:=okhttpinternal", - "Import-Package: " + - "android.*;resolution:=optional," + - "com.oracle.svm.core.annotate;resolution:=optional," + - "com.oracle.svm.core.configure;resolution:=optional," + - "dalvik.system;resolution:=optional," + - "org.conscrypt;resolution:=optional," + - "org.bouncycastle.*;resolution:=optional," + - "org.openjsse.*;resolution:=optional," + - "org.graalvm.nativeimage;resolution:=optional," + - "org.graalvm.nativeimage.hosted;resolution:=optional," + - "sun.security.ssl;resolution:=optional,*", - "Automatic-Module-Name: okhttp3", - "Bundle-SymbolicName: com.squareup.okhttp3" -) - -normalization { - runtimeClasspath { - /* - - The below two ignored files are generated during test execution - by the test: okhttp/src/test/java/okhttp3/osgi/OsgiTest.java - - - The compressed index.xml file contains a timestamp property which - changes with every test execution, such that running the test - actually changes the test classpath itself. This means that it - can"t benefit from incremental build acceleration, because on every - execution it sees that the classpath has changed, and so to be - safe, it needs to re-run. - - - This is unfortunate, because actually it would be safe to declare - the task as up-to-date, because these two files, which are based on - the generated index.xml, are outputs, not inputs. We can be sure of - this because they are deleted in the @BeforeEach method of the - OsgiTest test class. - - - To enable the benefit of incremental builds, we can ask Gradle - to ignore these two files when considering whether the classpath - has changed. That is the purpose of this normalization block. - */ - ignore("okhttp3/osgi/workspace/cnf/repo/index.xml.gz") - ignore("okhttp3/osgi/workspace/cnf/repo/index.xml.gz.sha") +if (platform == "jdk8alpn") { + // Add alpn-boot on Java 8 so we can use HTTP/2 without a stable API. + val alpnBootVersion = alpnBootVersion() + if (alpnBootVersion != null) { + val alpnBootJar = configurations.detachedConfiguration( + dependencies.create("org.mortbay.jetty.alpn:alpn-boot:$alpnBootVersion") + ).singleFile + tasks.withType { + jvmArgs("-Xbootclasspath/p:${alpnBootJar}") + } } } -// Expose OSGi jars to the test environment. -val osgiTestDeploy: Configuration by configurations.creating +android { + compileSdk = 34 + + namespace = "okhttp.okhttp3" + + defaultConfig { + minSdk = 21 -val test by tasks.existing(Test::class) -val copyOsgiTestDeployment = tasks.register("copyOsgiTestDeployment") { - from(osgiTestDeploy) - into(layout.buildDirectory.dir("resources/test/okhttp3/osgi/deployments")) + consumerProguardFiles("okhttp3.pro") + } } -test.configure { - dependsOn(copyOsgiTestDeployment) +// Hack to make BundleTaskExtension pass briefly +project.extensions + .getByType(JavaPluginExtension::class.java) + .sourceSets.create("main") + +// Call the convention when the task has finished, to modify the jar to contain OSGi metadata. +tasks.named("jvmJar").configure { + val bundleExtension = extensions.create( + BundleTaskExtension.NAME, + BundleTaskExtension::class.java, + this, + ).apply { + classpath(libs.kotlin.stdlib.osgi.map { it.artifacts }, tasks.named("jvmMainClasses").map { it.outputs }) + bnd( + "Export-Package: okhttp3,okhttp3.internal.*;okhttpinternal=true;mandatory:=okhttpinternal", + "Import-Package: " + + "com.oracle.svm.core.annotate;resolution:=optional," + + "com.oracle.svm.core.configure;resolution:=optional," + + "dalvik.system;resolution:=optional," + + "org.conscrypt;resolution:=optional," + + "org.bouncycastle.*;resolution:=optional," + + "org.openjsse.*;resolution:=optional," + + "org.graalvm.nativeimage;resolution:=optional," + + "org.graalvm.nativeimage.hosted;resolution:=optional," + + "sun.security.ssl;resolution:=optional,*", + "Automatic-Module-Name: okhttp3", + "Bundle-SymbolicName: com.squareup.okhttp3" + ) + } + + doLast { + bundleExtension.buildAction().execute(this) + } } +val checkstyleConfig: Configuration by configurations.named("checkstyleConfig") dependencies { - api(libs.squareup.okio) - api(libs.kotlin.stdlib) - - // These compileOnly dependencies must also be listed in the OSGi configuration above. - compileOnly(libs.robolectric.android) - compileOnly(libs.bouncycastle.bcprov) - compileOnly(libs.bouncycastle.bctls) - compileOnly(libs.conscrypt.openjdk) - compileOnly(libs.openjsse) - compileOnly(libs.findbugs.jsr305) - compileOnly(libs.animalsniffer.annotations) - - // graal build support - compileOnly(libs.nativeImageSvm) - - testCompileOnly(libs.bouncycastle.bctls) - testImplementation(projects.okhttpTestingSupport) - testImplementation(libs.assertk) - testImplementation(libs.kotlin.test.annotations) - testImplementation(libs.kotlin.test.common) - testImplementation(libs.kotlinx.serialization.core) - testImplementation(libs.kotlinx.serialization.json) - testImplementation(projects.okhttpJavaNetCookiejar) - testImplementation(projects.okhttpTls) - testImplementation(projects.okhttpUrlconnection) - testImplementation(projects.mockwebserver3) - testImplementation(projects.mockwebserver3Junit4) - testImplementation(projects.mockwebserver3Junit5) - testImplementation(projects.mockwebserver) - testImplementation(projects.loggingInterceptor) - testImplementation(projects.okhttpBrotli) - testImplementation(projects.okhttpDnsoverhttps) - testImplementation(projects.okhttpIdnaMappingTable) - testImplementation(projects.okhttpSse) - testImplementation(projects.okhttpCoroutines) - testImplementation(libs.kotlinx.coroutines.core) - testImplementation(libs.squareup.moshi) - testImplementation(libs.squareup.moshi.kotlin) - testImplementation(libs.squareup.okio.fakefilesystem) - testImplementation(libs.conscrypt.openjdk) - testImplementation(libs.junit) - testImplementation(libs.junit.jupiter.api) - testImplementation(libs.junit.jupiter.params) - testImplementation(libs.kotlin.test.junit) - testImplementation(libs.openjsse) - testImplementation(libs.aqute.resolve) - testCompileOnly(libs.findbugs.jsr305) - - osgiTestDeploy(libs.eclipseOsgi) - osgiTestDeploy(libs.kotlin.stdlib.osgi) + // Everything else requires Android API 21+. + "signature"(rootProject.libs.signature.android.apilevel21) { artifact { type = "signature" } } + + // OkHttp requires Java 8+. + "signature"(rootProject.libs.codehaus.signature.java18) { artifact { type = "signature" } } + + checkstyleConfig(rootProject.libs.checkStyle) { + isTransitive = false + } +} + +// Animal Sniffer confirms we generally don't use APIs not on Java 8. +configure { + annotation = "okhttp3.internal.SuppressSignatureCheck" + sourceSets = listOf(project.sourceSets["main"]) +} + +configure { + config = resources.text.fromArchiveEntry(checkstyleConfig, "google_checks.xml") + toolVersion = rootProject.libs.versions.checkStyle.get() + // TODO switch out checkstyle to use something supporting KMP + sourceSets = listOf(project.sourceSets["main"]) } +apply(plugin = "io.github.usefulness.maven-sympathy") + mavenPublishing { - configure(KotlinJvm(javadocJar = JavadocJar.Empty())) + configure(KotlinMultiplatform(javadocJar = JavadocJar.Empty(), androidVariantsToPublish = listOf("release"))) } diff --git a/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro b/okhttp/okhttp3.pro similarity index 85% rename from okhttp/src/main/resources/META-INF/proguard/okhttp3.pro rename to okhttp/okhttp3.pro index 280a52749be2..06eb9cc36d90 100644 --- a/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro +++ b/okhttp/okhttp3.pro @@ -5,6 +5,7 @@ -dontwarn org.codehaus.mojo.animal_sniffer.* # OkHttp platform used only on JVM and when Conscrypt and other security providers are available. +# May be used with robolectric or deliberate use of Bouncy Castle on Android -dontwarn okhttp3.internal.platform.** -dontwarn org.conscrypt.** -dontwarn org.bouncycastle.** diff --git a/okhttp/src/androidMain/AndroidManifest.xml b/okhttp/src/androidMain/AndroidManifest.xml new file mode 100644 index 000000000000..6b7444be5b61 --- /dev/null +++ b/okhttp/src/androidMain/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/Android10Platform.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/Android10Platform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/Android10Platform.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/Android10Platform.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/AndroidPlatform.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/AndroidPlatform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/AndroidPlatform.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/AndroidPlatform.kt diff --git a/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/PlatformRegistry.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/PlatformRegistry.kt new file mode 100644 index 000000000000..38ec6920953a --- /dev/null +++ b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/PlatformRegistry.kt @@ -0,0 +1,13 @@ +package okhttp3.internal.platform + +import okhttp3.internal.platform.android.AndroidLog + +actual object PlatformRegistry { + actual fun findPlatform(): Platform { + AndroidLog.enable() + return Android10Platform.buildIfSupported() ?: AndroidPlatform.buildIfSupported()!! + } + + actual val isAndroid: Boolean + get() = true +} diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/Android10SocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/Android10SocketAdapter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/Android10SocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/Android10SocketAdapter.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/AndroidCertificateChainCleaner.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/AndroidCertificateChainCleaner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/AndroidCertificateChainCleaner.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/AndroidCertificateChainCleaner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/AndroidLog.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/AndroidLog.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/AndroidLog.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/AndroidLog.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/AndroidSocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/AndroidSocketAdapter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/AndroidSocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/AndroidSocketAdapter.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/BouncyCastleSocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/BouncyCastleSocketAdapter.kt similarity index 81% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/BouncyCastleSocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/BouncyCastleSocketAdapter.kt index a2a4ffdfb018..fb0bab1a40ac 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/BouncyCastleSocketAdapter.kt +++ b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/BouncyCastleSocketAdapter.kt @@ -17,7 +17,6 @@ package okhttp3.internal.platform.android import javax.net.ssl.SSLSocket import okhttp3.Protocol -import okhttp3.internal.platform.BouncyCastlePlatform import okhttp3.internal.platform.Platform import org.bouncycastle.jsse.BCSSLSocket @@ -27,7 +26,7 @@ import org.bouncycastle.jsse.BCSSLSocket class BouncyCastleSocketAdapter : SocketAdapter { override fun matchesSocket(sslSocket: SSLSocket): Boolean = sslSocket is BCSSLSocket - override fun isSupported(): Boolean = BouncyCastlePlatform.isSupported + override fun isSupported(): Boolean = isSupported override fun getSelectedProtocol(sslSocket: SSLSocket): String? { val s = sslSocket as BCSSLSocket @@ -60,10 +59,20 @@ class BouncyCastleSocketAdapter : SocketAdapter { val factory = object : DeferredSocketAdapter.Factory { override fun matchesSocket(sslSocket: SSLSocket): Boolean { - return BouncyCastlePlatform.isSupported && sslSocket is BCSSLSocket + return isSupported && sslSocket is BCSSLSocket } override fun create(sslSocket: SSLSocket): SocketAdapter = BouncyCastleSocketAdapter() } + + val isSupported: Boolean = + try { + // Trigger an early exception over a fatal error, prefer a RuntimeException over Error. + Class.forName("org.bouncycastle.jsse.provider.BouncyCastleJsseProvider", false, javaClass.classLoader) + + true + } catch (_: ClassNotFoundException) { + false + } } } diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/ConscryptSocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/ConscryptSocketAdapter.kt similarity index 64% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/ConscryptSocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/ConscryptSocketAdapter.kt index 00781ee19b05..f14b9f8b9bc9 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/ConscryptSocketAdapter.kt +++ b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/ConscryptSocketAdapter.kt @@ -17,7 +17,6 @@ package okhttp3.internal.platform.android import javax.net.ssl.SSLSocket import okhttp3.Protocol -import okhttp3.internal.platform.ConscryptPlatform import okhttp3.internal.platform.Platform import org.conscrypt.Conscrypt @@ -28,7 +27,7 @@ import org.conscrypt.Conscrypt class ConscryptSocketAdapter : SocketAdapter { override fun matchesSocket(sslSocket: SSLSocket): Boolean = Conscrypt.isConscrypt(sslSocket) - override fun isSupported(): Boolean = ConscryptPlatform.isSupported + override fun isSupported(): Boolean = isSupported override fun getSelectedProtocol(sslSocket: SSLSocket): String? = when { @@ -56,10 +55,44 @@ class ConscryptSocketAdapter : SocketAdapter { val factory = object : DeferredSocketAdapter.Factory { override fun matchesSocket(sslSocket: SSLSocket): Boolean { - return ConscryptPlatform.isSupported && Conscrypt.isConscrypt(sslSocket) + return isSupported && Conscrypt.isConscrypt(sslSocket) } override fun create(sslSocket: SSLSocket): SocketAdapter = ConscryptSocketAdapter() } + + val isSupported: Boolean = + try { + // Trigger an early exception over a fatal error, prefer a RuntimeException over Error. + Class.forName("org.conscrypt.Conscrypt\$Version", false, javaClass.classLoader) + + when { + // Bump this version if we ever have a binary incompatibility + Conscrypt.isAvailable() && atLeastVersion(2, 1, 0) -> true + else -> false + } + } catch (e: NoClassDefFoundError) { + false + } catch (e: ClassNotFoundException) { + false + } + + fun atLeastVersion( + major: Int, + minor: Int = 0, + patch: Int = 0, + ): Boolean { + val conscryptVersion = Conscrypt.version() ?: return false + + if (conscryptVersion.major() != major) { + return conscryptVersion.major() > major + } + + if (conscryptVersion.minor() != minor) { + return conscryptVersion.minor() > minor + } + + return conscryptVersion.patch() >= patch + } } } diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/DeferredSocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/DeferredSocketAdapter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/DeferredSocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/DeferredSocketAdapter.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/SocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/SocketAdapter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/SocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/SocketAdapter.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/android/StandardAndroidSocketAdapter.kt b/okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/StandardAndroidSocketAdapter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/android/StandardAndroidSocketAdapter.kt rename to okhttp/src/androidMain/kotlin/okhttp3/internal/platform/android/StandardAndroidSocketAdapter.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Address.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Address.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Address.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Address.kt diff --git a/okhttp/src/main/kotlin/okhttp3/AsyncDns.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/AsyncDns.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/AsyncDns.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/AsyncDns.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Authenticator.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Authenticator.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Authenticator.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Authenticator.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Cache.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Cache.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Cache.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Cache.kt diff --git a/okhttp/src/main/kotlin/okhttp3/CacheControl.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/CacheControl.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/CacheControl.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/CacheControl.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Call.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Call.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Call.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Call.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Callback.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Callback.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Callback.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Callback.kt diff --git a/okhttp/src/main/kotlin/okhttp3/CertificatePinner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/CertificatePinner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/CertificatePinner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/CertificatePinner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Challenge.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Challenge.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Challenge.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Challenge.kt diff --git a/okhttp/src/main/kotlin/okhttp3/CipherSuite.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/CipherSuite.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/CipherSuite.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/CipherSuite.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Connection.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Connection.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Connection.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Connection.kt diff --git a/okhttp/src/main/kotlin/okhttp3/ConnectionListener.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/ConnectionListener.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/ConnectionListener.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/ConnectionListener.kt diff --git a/okhttp/src/main/kotlin/okhttp3/ConnectionPool.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/ConnectionPool.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/ConnectionPool.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/ConnectionPool.kt diff --git a/okhttp/src/main/kotlin/okhttp3/ConnectionSpec.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/ConnectionSpec.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/ConnectionSpec.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/ConnectionSpec.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Cookie.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Cookie.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Cookie.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Cookie.kt diff --git a/okhttp/src/main/kotlin/okhttp3/CookieJar.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/CookieJar.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/CookieJar.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/CookieJar.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Credentials.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Credentials.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Credentials.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Credentials.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Dispatcher.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Dispatcher.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Dispatcher.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Dispatcher.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Dns.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Dns.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Dns.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Dns.kt diff --git a/okhttp/src/main/kotlin/okhttp3/EventListener.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/EventListener.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/EventListener.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/EventListener.kt diff --git a/okhttp/src/main/kotlin/okhttp3/ExperimentalOkHttpApi.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/ExperimentalOkHttpApi.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/ExperimentalOkHttpApi.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/ExperimentalOkHttpApi.kt diff --git a/okhttp/src/main/kotlin/okhttp3/FormBody.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/FormBody.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/FormBody.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/FormBody.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Handshake.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Handshake.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Handshake.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Handshake.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Headers.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Headers.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Headers.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Headers.kt diff --git a/okhttp/src/main/kotlin/okhttp3/HttpUrl.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/HttpUrl.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/HttpUrl.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/HttpUrl.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Interceptor.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Interceptor.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Interceptor.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Interceptor.kt diff --git a/okhttp/src/main/kotlin/okhttp3/MediaType.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/MediaType.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/MediaType.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/MediaType.kt diff --git a/okhttp/src/main/kotlin/okhttp3/MultipartBody.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/MultipartBody.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/MultipartBody.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/MultipartBody.kt diff --git a/okhttp/src/main/kotlin/okhttp3/MultipartReader.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/MultipartReader.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/MultipartReader.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/MultipartReader.kt diff --git a/okhttp/src/main/kotlin/okhttp3/OkHttp.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttp.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/OkHttp.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttp.kt diff --git a/okhttp/src/main/kotlin/okhttp3/OkHttpClient.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttpClient.kt similarity index 99% rename from okhttp/src/main/kotlin/okhttp3/OkHttpClient.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttpClient.kt index 7f499c765c73..4f480d4a334d 100644 --- a/okhttp/src/main/kotlin/okhttp3/OkHttpClient.kt +++ b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/OkHttpClient.kt @@ -15,7 +15,6 @@ */ package okhttp3 -import android.annotation.SuppressLint import java.net.Proxy import java.net.ProxySelector import java.net.Socket @@ -1113,7 +1112,6 @@ open class OkHttpClient internal constructor( * * The default value is 0 which imposes no timeout. */ - @SuppressLint("NewApi") @IgnoreJRERequirement fun callTimeout(duration: Duration) = apply { @@ -1156,7 +1154,6 @@ open class OkHttpClient internal constructor( * The connect timeout is applied when connecting a TCP socket to the target host. The default * value is 10 seconds. */ - @SuppressLint("NewApi") @IgnoreJRERequirement fun connectTimeout(duration: Duration) = apply { @@ -1202,7 +1199,6 @@ open class OkHttpClient internal constructor( * @see Socket.setSoTimeout * @see Source.timeout */ - @SuppressLint("NewApi") @IgnoreJRERequirement fun readTimeout(duration: Duration) = apply { @@ -1249,7 +1245,6 @@ open class OkHttpClient internal constructor( * * @see Sink.timeout */ - @SuppressLint("NewApi") @IgnoreJRERequirement fun writeTimeout(duration: Duration) = apply { @@ -1303,7 +1298,6 @@ open class OkHttpClient internal constructor( * * The default value of 0 disables client-initiated pings. */ - @SuppressLint("NewApi") @IgnoreJRERequirement fun pingInterval(duration: Duration) = apply { @@ -1351,7 +1345,6 @@ open class OkHttpClient internal constructor( * wait for a graceful shutdown. If the server doesn't respond the web socket will be canceled. * The default value is 60 seconds. */ - @SuppressLint("NewApi") @IgnoreJRERequirement fun webSocketCloseTimeout(duration: Duration) = apply { diff --git a/okhttp/src/main/kotlin/okhttp3/Protocol.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Protocol.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Protocol.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Protocol.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Request.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Request.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Request.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Request.kt diff --git a/okhttp/src/main/kotlin/okhttp3/RequestBody.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/RequestBody.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/RequestBody.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/RequestBody.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Response.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Response.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Response.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Response.kt diff --git a/okhttp/src/main/kotlin/okhttp3/ResponseBody.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/ResponseBody.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/ResponseBody.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/ResponseBody.kt diff --git a/okhttp/src/main/kotlin/okhttp3/Route.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/Route.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/Route.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/Route.kt diff --git a/okhttp/src/main/kotlin/okhttp3/TlsVersion.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/TlsVersion.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/TlsVersion.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/TlsVersion.kt diff --git a/okhttp/src/main/kotlin/okhttp3/WebSocket.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/WebSocket.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/WebSocket.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/WebSocket.kt diff --git a/okhttp/src/main/kotlin/okhttp3/WebSocketListener.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/WebSocketListener.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/WebSocketListener.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/WebSocketListener.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-CacheControlCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-CacheControlCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-CacheControlCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-CacheControlCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-ChallengeCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-ChallengeCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-ChallengeCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-ChallengeCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-HeadersCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-HeadersCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-HeadersCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-HeadersCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-HostnamesCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-HostnamesCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-HostnamesCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-HostnamesCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-MediaTypeCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-MediaTypeCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-MediaTypeCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-MediaTypeCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-NormalizeJvm.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-NormalizeJvm.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-NormalizeJvm.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-NormalizeJvm.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-RequestBodyCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-RequestBodyCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-RequestBodyCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-RequestBodyCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-RequestCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-RequestCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-RequestCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-RequestCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-ResponseBodyCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-ResponseBodyCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-ResponseBodyCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-ResponseBodyCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-ResponseCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-ResponseCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-ResponseCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-ResponseCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-UtilCommon.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-UtilCommon.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-UtilCommon.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-UtilCommon.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/-UtilJvm.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-UtilJvm.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/-UtilJvm.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/-UtilJvm.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/NativeImageTestsAccessors.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/NativeImageTestsAccessors.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/NativeImageTestsAccessors.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/NativeImageTestsAccessors.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/SuppressSignatureCheck.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/SuppressSignatureCheck.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/SuppressSignatureCheck.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/SuppressSignatureCheck.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/authenticator/JavaNetAuthenticator.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/authenticator/JavaNetAuthenticator.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/authenticator/JavaNetAuthenticator.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/authenticator/JavaNetAuthenticator.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache/CacheInterceptor.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/CacheInterceptor.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache/CacheInterceptor.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/CacheInterceptor.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache/CacheRequest.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/CacheRequest.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache/CacheRequest.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/CacheRequest.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache/CacheStrategy.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/CacheStrategy.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache/CacheStrategy.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/CacheStrategy.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache/DiskLruCache.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/DiskLruCache.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache/DiskLruCache.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/DiskLruCache.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache/FaultHidingSink.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/FaultHidingSink.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache/FaultHidingSink.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache/FaultHidingSink.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache2/FileOperator.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache2/FileOperator.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache2/FileOperator.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache2/FileOperator.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/cache2/Relay.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache2/Relay.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/cache2/Relay.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/cache2/Relay.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/concurrent/Task.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/Task.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/concurrent/Task.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/Task.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/concurrent/TaskLogger.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/TaskLogger.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/concurrent/TaskLogger.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/TaskLogger.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/concurrent/TaskQueue.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/TaskQueue.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/concurrent/TaskQueue.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/TaskQueue.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/concurrent/TaskRunner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/TaskRunner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/concurrent/TaskRunner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/concurrent/TaskRunner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/CallConnectionUser.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/CallConnectionUser.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/CallConnectionUser.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/CallConnectionUser.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/ConnectInterceptor.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ConnectInterceptor.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/ConnectInterceptor.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ConnectInterceptor.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/ConnectPlan.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ConnectPlan.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/ConnectPlan.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ConnectPlan.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/ConnectionUser.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ConnectionUser.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/ConnectionUser.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ConnectionUser.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/Exchange.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/Exchange.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/Exchange.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/Exchange.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/ExchangeFinder.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ExchangeFinder.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/ExchangeFinder.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ExchangeFinder.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/FailedPlan.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/FailedPlan.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/FailedPlan.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/FailedPlan.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/FastFallbackExchangeFinder.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/FastFallbackExchangeFinder.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/FastFallbackExchangeFinder.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/FastFallbackExchangeFinder.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/ForceConnectRoutePlanner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ForceConnectRoutePlanner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/ForceConnectRoutePlanner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ForceConnectRoutePlanner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/InetAddressOrder.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/InetAddressOrder.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/InetAddressOrder.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/InetAddressOrder.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/Locks.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/Locks.kt similarity index 97% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/Locks.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/Locks.kt index 0a765eb8a820..9fc039419099 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/connection/Locks.kt +++ b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/Locks.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@file:OptIn(ExperimentalContracts::class) +@file:OptIn(ExperimentalContracts::class, ExperimentalContracts::class) package okhttp3.internal.connection diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/PoolConnectionUser.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/PoolConnectionUser.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/PoolConnectionUser.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/PoolConnectionUser.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RealCall.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealCall.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RealCall.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealCall.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RealConnection.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealConnection.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RealConnection.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealConnection.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RealConnectionPool.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealConnectionPool.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RealConnectionPool.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealConnectionPool.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RealRoutePlanner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealRoutePlanner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RealRoutePlanner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RealRoutePlanner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RetryTlsHandshake.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RetryTlsHandshake.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RetryTlsHandshake.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RetryTlsHandshake.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/ReusePlan.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ReusePlan.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/ReusePlan.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/ReusePlan.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RouteDatabase.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RouteDatabase.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RouteDatabase.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RouteDatabase.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RoutePlanner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RoutePlanner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RoutePlanner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RoutePlanner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/RouteSelector.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RouteSelector.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/RouteSelector.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/RouteSelector.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/connection/SequentialExchangeFinder.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/SequentialExchangeFinder.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/connection/SequentialExchangeFinder.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/connection/SequentialExchangeFinder.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/BridgeInterceptor.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/BridgeInterceptor.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/BridgeInterceptor.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/BridgeInterceptor.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/CallServerInterceptor.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/CallServerInterceptor.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/CallServerInterceptor.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/CallServerInterceptor.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/DateFormatting.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/DateFormatting.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/DateFormatting.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/DateFormatting.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/ExchangeCodec.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/ExchangeCodec.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/ExchangeCodec.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/ExchangeCodec.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/HttpHeaders.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/HttpHeaders.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/HttpHeaders.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/HttpHeaders.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/HttpMethod.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/HttpMethod.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/HttpMethod.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/HttpMethod.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/HttpStatusCodes.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/HttpStatusCodes.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/HttpStatusCodes.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/HttpStatusCodes.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/RealInterceptorChain.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RealInterceptorChain.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/RealInterceptorChain.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RealInterceptorChain.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/RealResponseBody.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RealResponseBody.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/RealResponseBody.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RealResponseBody.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/RequestLine.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RequestLine.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/RequestLine.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RequestLine.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/RetryAndFollowUpInterceptor.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RetryAndFollowUpInterceptor.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/RetryAndFollowUpInterceptor.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/RetryAndFollowUpInterceptor.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http/StatusLine.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/StatusLine.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http/StatusLine.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http/StatusLine.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http1/HeadersReader.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http1/HeadersReader.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http1/HeadersReader.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http1/HeadersReader.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http1/Http1ExchangeCodec.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http1/Http1ExchangeCodec.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http1/Http1ExchangeCodec.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http1/Http1ExchangeCodec.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/ConnectionShutdownException.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/ConnectionShutdownException.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/ConnectionShutdownException.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/ConnectionShutdownException.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/ErrorCode.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/ErrorCode.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/ErrorCode.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/ErrorCode.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/FlowControlListener.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/FlowControlListener.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/FlowControlListener.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/FlowControlListener.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Header.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Header.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Header.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Header.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Hpack.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Hpack.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Hpack.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Hpack.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Http2.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Http2.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Connection.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Connection.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Connection.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Connection.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Http2ExchangeCodec.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2ExchangeCodec.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Http2ExchangeCodec.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2ExchangeCodec.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Reader.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Reader.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Reader.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Reader.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Stream.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Stream.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Stream.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Stream.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Writer.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Writer.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Http2Writer.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Http2Writer.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Huffman.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Huffman.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Huffman.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Huffman.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/PushObserver.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/PushObserver.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/PushObserver.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/PushObserver.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/Settings.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Settings.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/Settings.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/Settings.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/StreamResetException.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/StreamResetException.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/StreamResetException.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/StreamResetException.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/http2/flowcontrol/WindowCounter.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/flowcontrol/WindowCounter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/http2/flowcontrol/WindowCounter.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/http2/flowcontrol/WindowCounter.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/idn/IdnaMappingTable.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/idn/IdnaMappingTable.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/idn/IdnaMappingTable.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/idn/IdnaMappingTable.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/idn/Punycode.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/idn/Punycode.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/idn/Punycode.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/idn/Punycode.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/internal.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/internal.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/internal.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/internal.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/Platform.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/platform/Platform.kt similarity index 78% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/Platform.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/platform/Platform.kt index 4483de380150..efcfac723c4e 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/platform/Platform.kt +++ b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/platform/Platform.kt @@ -16,13 +16,11 @@ */ package okhttp3.internal.platform -import android.annotation.SuppressLint import java.io.IOException import java.net.InetSocketAddress import java.net.Socket import java.security.GeneralSecurityException import java.security.KeyStore -import java.security.Security import java.util.logging.Level import java.util.logging.Logger import javax.net.ssl.ExtendedSSLSession @@ -35,7 +33,6 @@ import javax.net.ssl.TrustManagerFactory import javax.net.ssl.X509TrustManager import okhttp3.OkHttpClient import okhttp3.Protocol -import okhttp3.internal.platform.android.AndroidLog import okhttp3.internal.readFieldOrNull import okhttp3.internal.tls.BasicCertificateChainCleaner import okhttp3.internal.tls.BasicTrustRootIndex @@ -129,7 +126,6 @@ open class Platform { open fun getSelectedProtocol(sslSocket: SSLSocket): String? = null /** For MockWebServer. This returns the inbound SNI names. */ - @SuppressLint("NewApi") @IgnoreJRERequirement // This function is overridden to require API >= 24. open fun getHandshakeServerNames(sslSocket: SSLSocket): List { val session = sslSocket.session as? ExtendedSSLSession ?: return listOf() @@ -214,83 +210,11 @@ open class Platform { fun alpnProtocolNames(protocols: List) = protocols.filter { it != Protocol.HTTP_1_0 }.map { it.toString() } - // This explicit check avoids activating in Android Studio with Android specific classes - // available when running plugins inside the IDE. val isAndroid: Boolean - get() = "Dalvik" == System.getProperty("java.vm.name") - - private val isConscryptPreferred: Boolean - get() { - val preferredProvider = Security.getProviders()[0].name - return "Conscrypt" == preferredProvider - } - - private val isOpenJSSEPreferred: Boolean - get() { - val preferredProvider = Security.getProviders()[0].name - return "OpenJSSE" == preferredProvider - } - - private val isBouncyCastlePreferred: Boolean - get() { - val preferredProvider = Security.getProviders()[0].name - return "BC" == preferredProvider - } + get() = PlatformRegistry.isAndroid /** Attempt to match the host runtime to a capable Platform implementation. */ - private fun findPlatform(): Platform = - if (isAndroid) { - findAndroidPlatform() - } else { - findJvmPlatform() - } - - private fun findAndroidPlatform(): Platform { - AndroidLog.enable() - return Android10Platform.buildIfSupported() ?: AndroidPlatform.buildIfSupported()!! - } - - private fun findJvmPlatform(): Platform { - if (isConscryptPreferred) { - val conscrypt = ConscryptPlatform.buildIfSupported() - - if (conscrypt != null) { - return conscrypt - } - } - - if (isBouncyCastlePreferred) { - val bc = BouncyCastlePlatform.buildIfSupported() - - if (bc != null) { - return bc - } - } - - if (isOpenJSSEPreferred) { - val openJSSE = OpenJSSEPlatform.buildIfSupported() - - if (openJSSE != null) { - return openJSSE - } - } - - // An Oracle JDK 9 like OpenJDK, or JDK 8 251+. - val jdk9 = Jdk9Platform.buildIfSupported() - - if (jdk9 != null) { - return jdk9 - } - - // An Oracle JDK 8 like OpenJDK, pre 251. - val jdkWithJettyBoot = Jdk8WithJettyBootPlatform.buildIfSupported() - - if (jdkWithJettyBoot != null) { - return jdkWithJettyBoot - } - - return Platform() - } + private fun findPlatform(): Platform = PlatformRegistry.findPlatform() /** * Returns the concatenation of 8-bit, length prefixed protocol names. diff --git a/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/platform/PlatformRegistry.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/platform/PlatformRegistry.kt new file mode 100644 index 000000000000..ce90f02f93dd --- /dev/null +++ b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/platform/PlatformRegistry.kt @@ -0,0 +1,7 @@ +package okhttp3.internal.platform + +expect object PlatformRegistry { + fun findPlatform(): Platform + + val isAndroid: Boolean +} diff --git a/okhttp/src/main/kotlin/okhttp3/internal/proxy/NullProxySelector.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/proxy/NullProxySelector.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/proxy/NullProxySelector.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/proxy/NullProxySelector.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/publicsuffix/PublicSuffixDatabase.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/publicsuffix/PublicSuffixDatabase.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/publicsuffix/PublicSuffixDatabase.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/publicsuffix/PublicSuffixDatabase.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/publicsuffix/PublicSuffixList.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/publicsuffix/PublicSuffixList.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/publicsuffix/PublicSuffixList.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/publicsuffix/PublicSuffixList.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/tls/BasicCertificateChainCleaner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/BasicCertificateChainCleaner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/tls/BasicCertificateChainCleaner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/BasicCertificateChainCleaner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/tls/BasicTrustRootIndex.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/BasicTrustRootIndex.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/tls/BasicTrustRootIndex.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/BasicTrustRootIndex.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/tls/CertificateChainCleaner.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/CertificateChainCleaner.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/tls/CertificateChainCleaner.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/CertificateChainCleaner.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/tls/OkHostnameVerifier.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/OkHostnameVerifier.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/tls/OkHostnameVerifier.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/OkHostnameVerifier.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/tls/TrustRootIndex.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/TrustRootIndex.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/tls/TrustRootIndex.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/tls/TrustRootIndex.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/url/-Url.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/url/-Url.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/url/-Url.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/url/-Url.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageDeflater.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/MessageDeflater.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/MessageDeflater.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/MessageDeflater.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/MessageInflater.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/MessageInflater.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/MessageInflater.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/RealWebSocket.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/RealWebSocket.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/RealWebSocket.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/RealWebSocket.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketExtensions.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketExtensions.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketExtensions.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketExtensions.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketProtocol.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketProtocol.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketProtocol.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketProtocol.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketReader.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketReader.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketReader.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketReader.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketWriter.kt b/okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketWriter.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/ws/WebSocketWriter.kt rename to okhttp/src/commonJvmAndroid/kotlin/okhttp3/internal/ws/WebSocketWriter.kt diff --git a/okhttp/src/main/kotlinTemplates/okhttp3/internal/-InternalVersion.kt b/okhttp/src/commonJvmAndroid/kotlinTemplates/okhttp3/internal/-InternalVersion.kt similarity index 100% rename from okhttp/src/main/kotlinTemplates/okhttp3/internal/-InternalVersion.kt rename to okhttp/src/commonJvmAndroid/kotlinTemplates/okhttp3/internal/-InternalVersion.kt diff --git a/okhttp/src/main/kotlinTemplates/okhttp3/internal/publicsuffix/EmbeddedPublicSuffixList.kt b/okhttp/src/commonJvmAndroid/kotlinTemplates/okhttp3/internal/publicsuffix/EmbeddedPublicSuffixList.kt similarity index 100% rename from okhttp/src/main/kotlinTemplates/okhttp3/internal/publicsuffix/EmbeddedPublicSuffixList.kt rename to okhttp/src/commonJvmAndroid/kotlinTemplates/okhttp3/internal/publicsuffix/EmbeddedPublicSuffixList.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/graal/GraalSvm.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/graal/GraalSvm.kt similarity index 86% rename from okhttp/src/main/kotlin/okhttp3/internal/graal/GraalSvm.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/graal/GraalSvm.kt index caad047228d7..0e3b58e02c06 100644 --- a/okhttp/src/main/kotlin/okhttp3/internal/graal/GraalSvm.kt +++ b/okhttp/src/jvmMain/kotlin/okhttp3/internal/graal/GraalSvm.kt @@ -18,8 +18,6 @@ package okhttp3.internal.graal import com.oracle.svm.core.annotate.Delete import com.oracle.svm.core.annotate.Substitute import com.oracle.svm.core.annotate.TargetClass -import okhttp3.internal.platform.Android10Platform -import okhttp3.internal.platform.AndroidPlatform import okhttp3.internal.platform.BouncyCastlePlatform import okhttp3.internal.platform.ConscryptPlatform import okhttp3.internal.platform.Jdk8WithJettyBootPlatform @@ -27,14 +25,6 @@ import okhttp3.internal.platform.Jdk9Platform import okhttp3.internal.platform.OpenJSSEPlatform import okhttp3.internal.platform.Platform -@TargetClass(AndroidPlatform::class) -@Delete -class TargetAndroidPlatform - -@TargetClass(Android10Platform::class) -@Delete -class TargetAndroid10Platform - @TargetClass(BouncyCastlePlatform::class) @Delete class TargetBouncyCastlePlatform diff --git a/okhttp/src/main/kotlin/okhttp3/internal/graal/OkHttpFeature.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/graal/OkHttpFeature.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/graal/OkHttpFeature.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/graal/OkHttpFeature.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/BouncyCastlePlatform.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/BouncyCastlePlatform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/BouncyCastlePlatform.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/BouncyCastlePlatform.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/ConscryptPlatform.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/ConscryptPlatform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/ConscryptPlatform.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/ConscryptPlatform.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatform.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatform.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatform.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/Jdk9Platform.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/Jdk9Platform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/Jdk9Platform.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/Jdk9Platform.kt diff --git a/okhttp/src/main/kotlin/okhttp3/internal/platform/OpenJSSEPlatform.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/OpenJSSEPlatform.kt similarity index 100% rename from okhttp/src/main/kotlin/okhttp3/internal/platform/OpenJSSEPlatform.kt rename to okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/OpenJSSEPlatform.kt diff --git a/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/PlatformRegistry.kt b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/PlatformRegistry.kt new file mode 100644 index 000000000000..721170b8a047 --- /dev/null +++ b/okhttp/src/jvmMain/kotlin/okhttp3/internal/platform/PlatformRegistry.kt @@ -0,0 +1,68 @@ +package okhttp3.internal.platform + +import java.security.Security + +actual object PlatformRegistry { + private val isConscryptPreferred: Boolean + get() { + val preferredProvider = Security.getProviders()[0].name + return "Conscrypt" == preferredProvider + } + + private val isOpenJSSEPreferred: Boolean + get() { + val preferredProvider = Security.getProviders()[0].name + return "OpenJSSE" == preferredProvider + } + + private val isBouncyCastlePreferred: Boolean + get() { + val preferredProvider = Security.getProviders()[0].name + return "BC" == preferredProvider + } + + actual fun findPlatform(): Platform { + if (isConscryptPreferred) { + val conscrypt = ConscryptPlatform.buildIfSupported() + + if (conscrypt != null) { + return conscrypt + } + } + + if (isBouncyCastlePreferred) { + val bc = BouncyCastlePlatform.buildIfSupported() + + if (bc != null) { + return bc + } + } + + if (isOpenJSSEPreferred) { + val openJSSE = OpenJSSEPlatform.buildIfSupported() + + if (openJSSE != null) { + return openJSSE + } + } + + // An Oracle JDK 9 like OpenJDK, or JDK 8 251+. + val jdk9 = Jdk9Platform.buildIfSupported() + + if (jdk9 != null) { + return jdk9 + } + + // An Oracle JDK 8 like OpenJDK, pre 251. + val jdkWithJettyBoot = Jdk8WithJettyBootPlatform.buildIfSupported() + + if (jdkWithJettyBoot != null) { + return jdkWithJettyBoot + } + + return Platform() + } + + actual val isAndroid: Boolean + get() = false +} diff --git a/okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/native-image.properties b/okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/native-image.properties new file mode 100644 index 000000000000..75cbefcdc5c1 --- /dev/null +++ b/okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/native-image.properties @@ -0,0 +1 @@ +Args = -H:+AddAllCharsets --enable-http --enable-https --features=okhttp3.internal.graal.OkHttpFeature --report-unsupported-elements-at-runtime diff --git a/okhttp/src/main/resources/META-INF/native-image/okhttp/okhttp/reflect-config.json b/okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/reflect-config.json similarity index 100% rename from okhttp/src/main/resources/META-INF/native-image/okhttp/okhttp/reflect-config.json rename to okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/reflect-config.json diff --git a/okhttp/src/main/resources/META-INF/native-image/okhttp/okhttp/resource-config.json b/okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/resource-config.json similarity index 100% rename from okhttp/src/main/resources/META-INF/native-image/okhttp/okhttp/resource-config.json rename to okhttp/src/jvmMain/resources/META-INF/native-image/okhttp/okhttp/resource-config.json diff --git a/okhttp/src/test/java/okhttp3/AddressTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/AddressTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/AddressTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/AddressTest.kt diff --git a/okhttp/src/test/java/okhttp3/AutobahnTester.kt b/okhttp/src/jvmTest/kotlin/okhttp3/AutobahnTester.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/AutobahnTester.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/AutobahnTester.kt diff --git a/okhttp/src/test/java/okhttp3/BouncyCastleTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/BouncyCastleTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/BouncyCastleTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/BouncyCastleTest.kt diff --git a/okhttp/src/test/java/okhttp3/CacheControlJvmTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CacheControlJvmTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CacheControlJvmTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CacheControlJvmTest.kt diff --git a/okhttp/src/test/java/okhttp3/CacheControlTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CacheControlTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CacheControlTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CacheControlTest.kt diff --git a/okhttp/src/test/java/okhttp3/CacheCorruptionTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CacheCorruptionTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CacheCorruptionTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CacheCorruptionTest.kt diff --git a/okhttp/src/test/java/okhttp3/CacheTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CacheTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CacheTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CacheTest.kt diff --git a/okhttp/src/test/java/okhttp3/CallHandshakeTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CallHandshakeTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CallHandshakeTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CallHandshakeTest.kt diff --git a/okhttp/src/test/java/okhttp3/CallKotlinTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CallKotlinTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CallKotlinTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CallKotlinTest.kt diff --git a/okhttp/src/test/java/okhttp3/CallTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CallTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CallTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CallTest.kt diff --git a/okhttp/src/test/java/okhttp3/CertificateChainCleanerTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CertificateChainCleanerTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CertificateChainCleanerTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CertificateChainCleanerTest.kt diff --git a/okhttp/src/test/java/okhttp3/CertificatePinnerKotlinTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CertificatePinnerKotlinTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CertificatePinnerKotlinTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CertificatePinnerKotlinTest.kt diff --git a/okhttp/src/test/java/okhttp3/CertificatePinnerTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CertificatePinnerTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CertificatePinnerTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CertificatePinnerTest.kt diff --git a/okhttp/src/test/java/okhttp3/ChannelSocketFactory.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ChannelSocketFactory.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ChannelSocketFactory.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ChannelSocketFactory.kt diff --git a/okhttp/src/test/java/okhttp3/CipherSuiteTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CipherSuiteTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CipherSuiteTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CipherSuiteTest.kt diff --git a/okhttp/src/test/java/okhttp3/CommonRequestBodyTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CommonRequestBodyTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CommonRequestBodyTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CommonRequestBodyTest.kt diff --git a/okhttp/src/test/java/okhttp3/ConnectionCoalescingTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ConnectionCoalescingTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ConnectionCoalescingTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ConnectionCoalescingTest.kt diff --git a/okhttp/src/test/java/okhttp3/ConnectionListenerTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ConnectionListenerTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ConnectionListenerTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ConnectionListenerTest.kt diff --git a/okhttp/src/test/java/okhttp3/ConnectionReuseTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ConnectionReuseTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ConnectionReuseTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ConnectionReuseTest.kt diff --git a/okhttp/src/test/java/okhttp3/ConnectionSpecTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ConnectionSpecTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ConnectionSpecTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ConnectionSpecTest.kt diff --git a/okhttp/src/test/java/okhttp3/ConscryptTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ConscryptTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ConscryptTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ConscryptTest.kt diff --git a/okhttp/src/test/java/okhttp3/CookieTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CookieTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CookieTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CookieTest.kt diff --git a/okhttp/src/test/java/okhttp3/CookiesTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CookiesTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CookiesTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CookiesTest.kt diff --git a/okhttp/src/test/java/okhttp3/CorrettoTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/CorrettoTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/CorrettoTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/CorrettoTest.kt diff --git a/okhttp/src/test/java/okhttp3/DispatcherCleanupTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/DispatcherCleanupTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/DispatcherCleanupTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/DispatcherCleanupTest.kt diff --git a/okhttp/src/test/java/okhttp3/DispatcherTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/DispatcherTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/DispatcherTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/DispatcherTest.kt diff --git a/okhttp/src/test/java/okhttp3/DuplexTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/DuplexTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/DuplexTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/DuplexTest.kt diff --git a/okhttp/src/test/java/okhttp3/EventListenerTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/EventListenerTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/EventListenerTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/EventListenerTest.kt diff --git a/okhttp/src/test/java/okhttp3/FakeRoutePlanner.kt b/okhttp/src/jvmTest/kotlin/okhttp3/FakeRoutePlanner.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/FakeRoutePlanner.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/FakeRoutePlanner.kt diff --git a/okhttp/src/test/java/okhttp3/FallbackTestClientSocketFactory.kt b/okhttp/src/jvmTest/kotlin/okhttp3/FallbackTestClientSocketFactory.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/FallbackTestClientSocketFactory.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/FallbackTestClientSocketFactory.kt diff --git a/okhttp/src/test/java/okhttp3/FastFallbackTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/FastFallbackTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/FastFallbackTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/FastFallbackTest.kt diff --git a/okhttp/src/test/java/okhttp3/FormBodyTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/FormBodyTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/FormBodyTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/FormBodyTest.kt diff --git a/okhttp/src/test/java/okhttp3/HandshakeTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HandshakeTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HandshakeTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HandshakeTest.kt diff --git a/okhttp/src/test/java/okhttp3/HeadersChallengesTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HeadersChallengesTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HeadersChallengesTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HeadersChallengesTest.kt diff --git a/okhttp/src/test/java/okhttp3/HeadersJvmTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HeadersJvmTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HeadersJvmTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HeadersJvmTest.kt diff --git a/okhttp/src/test/java/okhttp3/HeadersKotlinTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HeadersKotlinTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HeadersKotlinTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HeadersKotlinTest.kt diff --git a/okhttp/src/test/java/okhttp3/HeadersRequestTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HeadersRequestTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HeadersRequestTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HeadersRequestTest.kt diff --git a/okhttp/src/test/java/okhttp3/HeadersTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HeadersTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HeadersTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HeadersTest.kt diff --git a/okhttp/src/test/java/okhttp3/HttpUrlJvmTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HttpUrlJvmTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HttpUrlJvmTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HttpUrlJvmTest.kt diff --git a/okhttp/src/test/java/okhttp3/HttpUrlTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/HttpUrlTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/HttpUrlTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/HttpUrlTest.kt diff --git a/okhttp/src/test/java/okhttp3/InsecureForHostTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/InsecureForHostTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/InsecureForHostTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/InsecureForHostTest.kt diff --git a/okhttp/src/test/java/okhttp3/InterceptorTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/InterceptorTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/InterceptorTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/InterceptorTest.kt diff --git a/okhttp/src/test/java/okhttp3/JSSETest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/JSSETest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/JSSETest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/JSSETest.kt diff --git a/okhttp/src/test/java/okhttp3/KotlinDeprecationErrorTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/KotlinDeprecationErrorTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/KotlinDeprecationErrorTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/KotlinDeprecationErrorTest.kt diff --git a/okhttp/src/test/java/okhttp3/KotlinSourceModernTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/KotlinSourceModernTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/KotlinSourceModernTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/KotlinSourceModernTest.kt diff --git a/okhttp/src/test/java/okhttp3/LoomTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/LoomTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/LoomTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/LoomTest.kt diff --git a/okhttp/src/test/java/okhttp3/MediaTypeGetTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/MediaTypeGetTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/MediaTypeGetTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/MediaTypeGetTest.kt diff --git a/okhttp/src/test/java/okhttp3/MediaTypeJvmTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/MediaTypeJvmTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/MediaTypeJvmTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/MediaTypeJvmTest.kt diff --git a/okhttp/src/test/java/okhttp3/MediaTypeTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/MediaTypeTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/MediaTypeTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/MediaTypeTest.kt diff --git a/okhttp/src/test/java/okhttp3/MultipartBodyTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/MultipartBodyTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/MultipartBodyTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/MultipartBodyTest.kt diff --git a/okhttp/src/test/java/okhttp3/MultipartReaderTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/MultipartReaderTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/MultipartReaderTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/MultipartReaderTest.kt diff --git a/okhttp/src/test/java/okhttp3/OkHttpClientTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/OkHttpClientTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/OkHttpClientTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/OkHttpClientTest.kt diff --git a/okhttp/src/test/java/okhttp3/OkHttpTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/OkHttpTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/OkHttpTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/OkHttpTest.kt diff --git a/okhttp/src/test/java/okhttp3/OpenJSSETest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/OpenJSSETest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/OpenJSSETest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/OpenJSSETest.kt diff --git a/okhttp/src/test/java/okhttp3/ProtocolTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ProtocolTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ProtocolTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ProtocolTest.kt diff --git a/okhttp/src/test/java/okhttp3/PublicInternalApiTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/PublicInternalApiTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/PublicInternalApiTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/PublicInternalApiTest.kt diff --git a/okhttp/src/test/java/okhttp3/RecordedResponse.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RecordedResponse.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RecordedResponse.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RecordedResponse.kt diff --git a/okhttp/src/test/java/okhttp3/RecordingCallback.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RecordingCallback.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RecordingCallback.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RecordingCallback.kt diff --git a/okhttp/src/test/java/okhttp3/RecordingExecutor.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RecordingExecutor.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RecordingExecutor.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RecordingExecutor.kt diff --git a/okhttp/src/test/java/okhttp3/RequestBodyTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RequestBodyTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RequestBodyTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RequestBodyTest.kt diff --git a/okhttp/src/test/java/okhttp3/RequestCommonTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RequestCommonTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RequestCommonTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RequestCommonTest.kt diff --git a/okhttp/src/test/java/okhttp3/RequestTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RequestTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RequestTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RequestTest.kt diff --git a/okhttp/src/test/java/okhttp3/ResponseBodyJvmTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ResponseBodyJvmTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ResponseBodyJvmTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ResponseBodyJvmTest.kt diff --git a/okhttp/src/test/java/okhttp3/ResponseBodyTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ResponseBodyTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ResponseBodyTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ResponseBodyTest.kt diff --git a/okhttp/src/test/java/okhttp3/ResponseCommonTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ResponseCommonTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ResponseCommonTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ResponseCommonTest.kt diff --git a/okhttp/src/test/java/okhttp3/ResponseJvmTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ResponseJvmTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ResponseJvmTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ResponseJvmTest.kt diff --git a/okhttp/src/test/java/okhttp3/RouteFailureTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/RouteFailureTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/RouteFailureTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/RouteFailureTest.kt diff --git a/okhttp/src/test/java/okhttp3/ServerTruncatesRequestTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/ServerTruncatesRequestTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/ServerTruncatesRequestTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/ServerTruncatesRequestTest.kt diff --git a/okhttp/src/test/java/okhttp3/SessionReuseTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/SessionReuseTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/SessionReuseTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/SessionReuseTest.kt diff --git a/okhttp/src/test/java/okhttp3/SocketChannelTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/SocketChannelTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/SocketChannelTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/SocketChannelTest.kt diff --git a/okhttp/src/test/java/okhttp3/SocksProxy.kt b/okhttp/src/jvmTest/kotlin/okhttp3/SocksProxy.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/SocksProxy.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/SocksProxy.kt diff --git a/okhttp/src/test/java/okhttp3/SocksProxyTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/SocksProxyTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/SocksProxyTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/SocksProxyTest.kt diff --git a/okhttp/src/test/java/okhttp3/TestLogHandler.kt b/okhttp/src/jvmTest/kotlin/okhttp3/TestLogHandler.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/TestLogHandler.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/TestLogHandler.kt diff --git a/okhttp/src/test/java/okhttp3/TestTls13Request.kt b/okhttp/src/jvmTest/kotlin/okhttp3/TestTls13Request.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/TestTls13Request.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/TestTls13Request.kt diff --git a/okhttp/src/test/java/okhttp3/URLConnectionTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/URLConnectionTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/URLConnectionTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/URLConnectionTest.kt diff --git a/okhttp/src/test/java/okhttp3/UrlComponentEncodingTester.kt b/okhttp/src/jvmTest/kotlin/okhttp3/UrlComponentEncodingTester.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/UrlComponentEncodingTester.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/UrlComponentEncodingTester.kt diff --git a/okhttp/src/test/java/okhttp3/UrlComponentEncodingTesterJvm.kt b/okhttp/src/jvmTest/kotlin/okhttp3/UrlComponentEncodingTesterJvm.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/UrlComponentEncodingTesterJvm.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/UrlComponentEncodingTesterJvm.kt diff --git a/okhttp/src/test/java/okhttp3/WebPlatformToAsciiData.kt b/okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformToAsciiData.kt similarity index 93% rename from okhttp/src/test/java/okhttp3/WebPlatformToAsciiData.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformToAsciiData.kt index 474862b25444..1912ae0c7442 100644 --- a/okhttp/src/test/java/okhttp3/WebPlatformToAsciiData.kt +++ b/okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformToAsciiData.kt @@ -34,7 +34,7 @@ class WebPlatformToAsciiData { companion object { fun load(): List { - val path = okHttpRoot / "okhttp/src/test/resources/web-platform-test-toascii.json" + val path = okHttpRoot / "okhttp/src/jvmTest/resources/web-platform-test-toascii.json" return SYSTEM_FILE_SYSTEM.read(path) { Json.decodeFromString>(readUtf8()) } diff --git a/okhttp/src/test/java/okhttp3/WebPlatformToAsciiTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformToAsciiTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/WebPlatformToAsciiTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformToAsciiTest.kt diff --git a/okhttp/src/test/java/okhttp3/WebPlatformUrlTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformUrlTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/WebPlatformUrlTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformUrlTest.kt diff --git a/okhttp/src/test/java/okhttp3/WebPlatformUrlTestData.kt b/okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformUrlTestData.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/WebPlatformUrlTestData.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/WebPlatformUrlTestData.kt diff --git a/okhttp/src/test/java/okhttp3/WholeOperationTimeoutTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/WholeOperationTimeoutTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/WholeOperationTimeoutTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/WholeOperationTimeoutTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/DoubleInetAddressDns.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/DoubleInetAddressDns.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/DoubleInetAddressDns.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/DoubleInetAddressDns.kt diff --git a/okhttp/src/test/java/okhttp3/internal/HostnamesTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/HostnamesTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/HostnamesTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/HostnamesTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/RecordingAuthenticator.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/RecordingAuthenticator.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/RecordingAuthenticator.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/RecordingAuthenticator.kt diff --git a/okhttp/src/test/java/okhttp3/internal/UtilTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/UtilTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/UtilTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/UtilTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/authenticator/JavaNetAuthenticatorTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/authenticator/JavaNetAuthenticatorTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/authenticator/JavaNetAuthenticatorTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/authenticator/JavaNetAuthenticatorTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/cache/DiskLruCacheTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/cache/DiskLruCacheTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/cache/DiskLruCacheTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/cache/DiskLruCacheTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/cache2/FileOperatorTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/cache2/FileOperatorTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/cache2/FileOperatorTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/cache2/FileOperatorTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/cache2/RelayTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/cache2/RelayTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/cache2/RelayTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/cache2/RelayTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/concurrent/TaskLoggerTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/concurrent/TaskLoggerTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/concurrent/TaskLoggerTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/concurrent/TaskLoggerTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/concurrent/TaskRunnerRealBackendTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/concurrent/TaskRunnerRealBackendTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/concurrent/TaskRunnerRealBackendTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/concurrent/TaskRunnerRealBackendTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/concurrent/TaskRunnerTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/concurrent/TaskRunnerTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/concurrent/TaskRunnerTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/concurrent/TaskRunnerTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/connection/ConnectionPoolTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/ConnectionPoolTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/connection/ConnectionPoolTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/ConnectionPoolTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/connection/FastFallbackExchangeFinderTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/FastFallbackExchangeFinderTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/connection/FastFallbackExchangeFinderTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/FastFallbackExchangeFinderTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/connection/InetAddressOrderTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/InetAddressOrderTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/connection/InetAddressOrderTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/InetAddressOrderTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/connection/RetryConnectionTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/RetryConnectionTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/connection/RetryConnectionTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/RetryConnectionTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/connection/RouteSelectorTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/RouteSelectorTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/connection/RouteSelectorTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/connection/RouteSelectorTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http/CancelTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http/CancelTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http/CancelTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http/CancelTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http/ExternalHttp2Example.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http/ExternalHttp2Example.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http/ExternalHttp2Example.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http/ExternalHttp2Example.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http/HttpDateTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http/HttpDateTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http/HttpDateTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http/HttpDateTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http/StatusLineTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http/StatusLineTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http/StatusLineTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http/StatusLineTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http/ThreadInterruptTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http/ThreadInterruptTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http/ThreadInterruptTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http/ThreadInterruptTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/BaseTestHandler.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/BaseTestHandler.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/BaseTestHandler.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/BaseTestHandler.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/FrameLogTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/FrameLogTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/FrameLogTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/FrameLogTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/HpackTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/HpackTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/HpackTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/HpackTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/Http2ConnectionTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/Http2ConnectionTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/Http2ConnectionTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/Http2ConnectionTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/Http2Test.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/Http2Test.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/Http2Test.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/Http2Test.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/HttpOverHttp2Test.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/HttpOverHttp2Test.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/HttpOverHttp2Test.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/HttpOverHttp2Test.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/HuffmanTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/HuffmanTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/HuffmanTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/HuffmanTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/MockHttp2Peer.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/MockHttp2Peer.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/MockHttp2Peer.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/MockHttp2Peer.kt diff --git a/okhttp/src/test/java/okhttp3/internal/http2/SettingsTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/SettingsTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/http2/SettingsTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/http2/SettingsTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/idn/IdnaMappingTableTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/idn/IdnaMappingTableTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/idn/IdnaMappingTableTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/idn/IdnaMappingTableTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/idn/PunycodeTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/idn/PunycodeTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/idn/PunycodeTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/idn/PunycodeTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/io/FaultyFileSystem.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/io/FaultyFileSystem.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/io/FaultyFileSystem.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/io/FaultyFileSystem.kt diff --git a/okhttp/src/test/java/okhttp3/internal/platform/Jdk8WithJettyBootPlatformTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatformTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/platform/Jdk8WithJettyBootPlatformTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/platform/Jdk8WithJettyBootPlatformTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/platform/Jdk9PlatformTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/platform/Jdk9PlatformTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/platform/Jdk9PlatformTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/platform/Jdk9PlatformTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/platform/PlatformTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/platform/PlatformTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/platform/PlatformTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/platform/PlatformTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/publicsuffix/PublicSuffixDatabaseTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/publicsuffix/PublicSuffixDatabaseTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/publicsuffix/PublicSuffixDatabaseTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/publicsuffix/PublicSuffixDatabaseTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/publicsuffix/PublicSuffixListGenerator.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/publicsuffix/PublicSuffixListGenerator.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/publicsuffix/PublicSuffixListGenerator.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/publicsuffix/PublicSuffixListGenerator.kt diff --git a/okhttp/src/test/java/okhttp3/internal/publicsuffix/ResourcePublicSuffixList.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/publicsuffix/ResourcePublicSuffixList.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/publicsuffix/ResourcePublicSuffixList.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/publicsuffix/ResourcePublicSuffixList.kt diff --git a/okhttp/src/test/java/okhttp3/internal/tls/CertificatePinnerChainValidationTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/tls/CertificatePinnerChainValidationTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/tls/CertificatePinnerChainValidationTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/tls/CertificatePinnerChainValidationTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/tls/ClientAuthTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/tls/ClientAuthTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/tls/ClientAuthTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/tls/ClientAuthTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/tls/HostnameVerifierTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/tls/HostnameVerifierTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/tls/HostnameVerifierTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/tls/HostnameVerifierTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/MessageDeflaterInflaterTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/RealWebSocketTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/RealWebSocketTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/RealWebSocketTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/RealWebSocketTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/WebSocketExtensionsTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketExtensionsTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/WebSocketExtensionsTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketExtensionsTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/WebSocketHttpTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketHttpTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/WebSocketHttpTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketHttpTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/WebSocketReaderTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketReaderTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/WebSocketReaderTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketReaderTest.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/WebSocketRecorder.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketRecorder.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/WebSocketRecorder.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketRecorder.kt diff --git a/okhttp/src/test/java/okhttp3/internal/ws/WebSocketWriterTest.kt b/okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketWriterTest.kt similarity index 100% rename from okhttp/src/test/java/okhttp3/internal/ws/WebSocketWriterTest.kt rename to okhttp/src/jvmTest/kotlin/okhttp3/internal/ws/WebSocketWriterTest.kt diff --git a/okhttp/src/test/resources/okhttp3/internal/publicsuffix/NOTICE b/okhttp/src/jvmTest/resources/okhttp3/internal/publicsuffix/NOTICE similarity index 100% rename from okhttp/src/test/resources/okhttp3/internal/publicsuffix/NOTICE rename to okhttp/src/jvmTest/resources/okhttp3/internal/publicsuffix/NOTICE diff --git a/okhttp/src/test/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz b/okhttp/src/jvmTest/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz similarity index 100% rename from okhttp/src/test/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz rename to okhttp/src/jvmTest/resources/okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz diff --git a/okhttp/src/test/resources/okhttp3/internal/publicsuffix/public_suffix_list.dat b/okhttp/src/jvmTest/resources/okhttp3/internal/publicsuffix/public_suffix_list.dat similarity index 100% rename from okhttp/src/test/resources/okhttp3/internal/publicsuffix/public_suffix_list.dat rename to okhttp/src/jvmTest/resources/okhttp3/internal/publicsuffix/public_suffix_list.dat diff --git a/okhttp/src/test/resources/web-platform-test-toascii.json b/okhttp/src/jvmTest/resources/web-platform-test-toascii.json similarity index 100% rename from okhttp/src/test/resources/web-platform-test-toascii.json rename to okhttp/src/jvmTest/resources/web-platform-test-toascii.json diff --git a/okhttp/src/test/resources/web-platform-test-urltestdata.txt b/okhttp/src/jvmTest/resources/web-platform-test-urltestdata.txt similarity index 100% rename from okhttp/src/test/resources/web-platform-test-urltestdata.txt rename to okhttp/src/jvmTest/resources/web-platform-test-urltestdata.txt diff --git a/settings.gradle.kts b/settings.gradle.kts index 0b7f1566c4f3..442c415ab5e1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -37,6 +37,7 @@ include(":okhttp-hpacktests") include(":okhttp-idna-mapping-table") include(":okhttp-java-net-cookiejar") include(":okhttp-logging-interceptor") +include(":okhttp-osgi-tests") include(":okhttp-sse") include(":okhttp-testing-support") include(":okhttp-tls") @@ -61,31 +62,10 @@ val localProperties = Properties().apply { } } val sdkDir = localProperties.getProperty("sdk.dir") -if ((androidHome != null || sdkDir != null) && !isKnownBrokenIntelliJ()) { +if (androidHome != null || sdkDir != null) { include(":okhttp-android") include(":android-test") include(":android-test-app") } enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") - -/** - * Avoid a crash in IntelliJ triggered by Android submodules. - * - * ``` - * java.lang.AssertionError: Can't find built-in class kotlin.Cloneable - * at org.jetbrains.kotlin.builtins.KotlinBuiltIns.getBuiltInClassByFqName(KotlinBuiltIns.java:217) - * at org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMapper.mapJavaToKotlin(JavaToKotlinClassMapper.kt:41) - * ... - * ``` - */ -fun isKnownBrokenIntelliJ(): Boolean { - val ideaVersionString = System.getProperty("idea.version") ?: return false - - return try { - val (major, minor, _) = ideaVersionString.split(".", limit = 3) - KotlinVersion(major.toInt(), minor.toInt()) < KotlinVersion(2023, 2) - } catch (e: Exception) { - false // Unknown version, presumably compatible. - } -}