mirror of
https://github.com/square/okhttp.git
synced 2025-07-31 05:04:26 +03:00
Switch back to the kotlin JVM plugin (#8149)
* Switch back to the kotlin JVM plugin This does a ton of file moves from jvmMain to main, and jvmTest to test. * Don't use AnimalSniffer on okcurl * Use assertk more (#8150)
This commit is contained in:
26
.github/workflows/build.yml
vendored
26
.github/workflows/build.yml
vendored
@ -80,7 +80,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: check -PandroidBuild=true -PgraalBuild=true -x test -x jvmTest
|
arguments: check -PandroidBuild=true -PgraalBuild=true -x test -x test
|
||||||
|
|
||||||
testopenjdk11:
|
testopenjdk11:
|
||||||
permissions:
|
permissions:
|
||||||
@ -108,7 +108,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=11
|
arguments: test -Dtest.java.version=11
|
||||||
|
|
||||||
- name: Publish Test Report
|
- name: Publish Test Report
|
||||||
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master'
|
if: github.repository == 'square/okhttp' && github.ref == 'refs/heads/master'
|
||||||
@ -142,7 +142,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=11
|
arguments: test -Dtest.java.version=11
|
||||||
|
|
||||||
testopenjdk8:
|
testopenjdk8:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -169,7 +169,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=8
|
arguments: test -Dtest.java.version=8
|
||||||
|
|
||||||
testopenjdk8alpn:
|
testopenjdk8alpn:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -202,7 +202,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=8 -Dokhttp.platform=jdk8alpn -Dalpn.boot.version=8.1.13.v20181017 -Dorg.gradle.java.installations.paths=/opt/hostedtoolcache/Java_Adopt_jdk/8.0.242-8.1/x64
|
arguments: test -Dtest.java.version=8 -Dokhttp.platform=jdk8alpn -Dalpn.boot.version=8.1.13.v20181017 -Dorg.gradle.java.installations.paths=/opt/hostedtoolcache/Java_Adopt_jdk/8.0.242-8.1/x64
|
||||||
|
|
||||||
testopenjsse:
|
testopenjsse:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -229,7 +229,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=8 -Dokhttp.platform=openjsse
|
arguments: test -Dtest.java.version=8 -Dokhttp.platform=openjsse
|
||||||
|
|
||||||
testconscrypt:
|
testconscrypt:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -256,7 +256,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dokhttp.platform=conscrypt
|
arguments: test -Dokhttp.platform=conscrypt
|
||||||
|
|
||||||
testbouncycastle:
|
testbouncycastle:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -283,7 +283,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dokhttp.platform=bouncycastle
|
arguments: test -Dokhttp.platform=bouncycastle
|
||||||
|
|
||||||
testcorretto:
|
testcorretto:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -311,7 +311,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dokhttp.platform=corretto
|
arguments: test -Dokhttp.platform=corretto
|
||||||
|
|
||||||
testopenjdk17:
|
testopenjdk17:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -339,7 +339,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=17
|
arguments: test -Dtest.java.version=17
|
||||||
|
|
||||||
testopenjdk19:
|
testopenjdk19:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -373,7 +373,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dtest.java.version=19
|
arguments: test -Dtest.java.version=19
|
||||||
|
|
||||||
testwindows:
|
testwindows:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
@ -401,7 +401,7 @@ jobs:
|
|||||||
- name: Test
|
- name: Test
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest
|
arguments: test
|
||||||
|
|
||||||
testgraal:
|
testgraal:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -532,7 +532,7 @@ jobs:
|
|||||||
- name: Run Checks
|
- name: Run Checks
|
||||||
uses: gradle/gradle-build-action@v2
|
uses: gradle/gradle-build-action@v2
|
||||||
with:
|
with:
|
||||||
arguments: jvmTest -Dokhttp.platform=loom -Dtest.java.version=20
|
arguments: test -Dokhttp.platform=loom -Dtest.java.version=20
|
||||||
|
|
||||||
|
|
||||||
testandroidregression:
|
testandroidregression:
|
||||||
|
@ -167,7 +167,7 @@ limitations under the License.
|
|||||||
[conscrypt]: https://github.com/google/conscrypt/
|
[conscrypt]: https://github.com/google/conscrypt/
|
||||||
[get_example]: https://raw.github.com/square/okhttp/master/samples/guide/src/main/java/okhttp3/guide/GetExample.java
|
[get_example]: https://raw.github.com/square/okhttp/master/samples/guide/src/main/java/okhttp3/guide/GetExample.java
|
||||||
[kotlin]: https://kotlinlang.org/
|
[kotlin]: https://kotlinlang.org/
|
||||||
[okhttp3_pro]: https://raw.githubusercontent.com/square/okhttp/master/okhttp/src/jvmMain/resources/META-INF/proguard/okhttp3.pro
|
[okhttp3_pro]: https://raw.githubusercontent.com/square/okhttp/master/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro
|
||||||
[okhttp_312x]: https://github.com/square/okhttp/tree/okhttp_3.12.x
|
[okhttp_312x]: https://github.com/square/okhttp/tree/okhttp_3.12.x
|
||||||
[okhttp]: https://square.github.io/okhttp/
|
[okhttp]: https://square.github.io/okhttp/
|
||||||
[okio]: https://github.com/square/okio
|
[okio]: https://github.com/square/okio
|
||||||
|
@ -63,6 +63,7 @@ dependencies {
|
|||||||
exclude("org.conscrypt", "conscrypt-openjdk-uber")
|
exclude("org.conscrypt", "conscrypt-openjdk-uber")
|
||||||
exclude("software.amazon.cryptools", "AmazonCorrettoCryptoProvider")
|
exclude("software.amazon.cryptools", "AmazonCorrettoCryptoProvider")
|
||||||
}
|
}
|
||||||
|
androidTestImplementation(libs.assertk)
|
||||||
androidTestImplementation(libs.bouncycastle.bcprov)
|
androidTestImplementation(libs.bouncycastle.bcprov)
|
||||||
androidTestImplementation(libs.bouncycastle.bctls)
|
androidTestImplementation(libs.bouncycastle.bctls)
|
||||||
androidTestImplementation(libs.conscrypt.android)
|
androidTestImplementation(libs.conscrypt.android)
|
||||||
|
@ -17,12 +17,17 @@ package okhttp.android.test.alpn;
|
|||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import java.net.InetSocketAddress
|
import assertk.assertThat
|
||||||
import java.net.Proxy
|
import assertk.assertions.isEqualTo
|
||||||
import javax.net.ssl.SSLSocket
|
import javax.net.ssl.SSLSocket
|
||||||
import javax.net.ssl.SSLSocketFactory
|
import javax.net.ssl.SSLSocketFactory
|
||||||
import okhttp3.*
|
import okhttp3.Call
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import okhttp3.Connection
|
||||||
|
import okhttp3.ConnectionSpec
|
||||||
|
import okhttp3.DelegatingSSLSocketFactory
|
||||||
|
import okhttp3.EventListener
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
import okhttp3.Request
|
||||||
import org.junit.jupiter.api.Tag
|
import org.junit.jupiter.api.Tag
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
@ -16,15 +16,16 @@
|
|||||||
package okhttp.android.test.letsencrypt;
|
package okhttp.android.test.letsencrypt;
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import java.security.cert.X509Certificate
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Protocol
|
import okhttp3.Protocol
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import okhttp3.tls.HandshakeCertificates
|
import okhttp3.tls.HandshakeCertificates
|
||||||
import okhttp3.tls.decodeCertificatePem
|
import okhttp3.tls.decodeCertificatePem
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.Tag
|
import org.junit.jupiter.api.Tag
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import java.security.cert.X509Certificate
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for new Let's Encrypt Root Certificate.
|
* Test for new Let's Encrypt Root Certificate.
|
||||||
|
@ -17,6 +17,9 @@ package okhttp.android.test.sni;
|
|||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.contains
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
import java.security.cert.X509Certificate
|
import java.security.cert.X509Certificate
|
||||||
import javax.net.ssl.SNIHostName
|
import javax.net.ssl.SNIHostName
|
||||||
import javax.net.ssl.SNIServerName
|
import javax.net.ssl.SNIServerName
|
||||||
@ -28,7 +31,6 @@ import okhttp3.OkHttpClient
|
|||||||
import okhttp3.Protocol
|
import okhttp3.Protocol
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.junit.jupiter.api.Assumptions.assumeTrue
|
import org.junit.jupiter.api.Assumptions.assumeTrue
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.Tag
|
import org.junit.jupiter.api.Tag
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
@ -2,15 +2,10 @@
|
|||||||
|
|
||||||
import com.vanniktech.maven.publish.MavenPublishBaseExtension
|
import com.vanniktech.maven.publish.MavenPublishBaseExtension
|
||||||
import com.vanniktech.maven.publish.SonatypeHost
|
import com.vanniktech.maven.publish.SonatypeHost
|
||||||
import groovy.util.Node
|
|
||||||
import groovy.util.NodeList
|
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import kotlinx.validation.ApiValidationExtension
|
import kotlinx.validation.ApiValidationExtension
|
||||||
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
||||||
import org.jetbrains.dokka.gradle.DokkaTaskPartial
|
import org.jetbrains.dokka.gradle.DokkaTaskPartial
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
import ru.vyarus.gradle.plugin.animalsniffer.AnimalSnifferExtension
|
import ru.vyarus.gradle.plugin.animalsniffer.AnimalSnifferExtension
|
||||||
|
|
||||||
@ -179,16 +174,9 @@ subprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// https://publicobject.com/2023/04/16/read-a-project-file-in-a-kotlin-multiplatform-test/
|
// https://publicobject.com/2023/04/16/read-a-project-file-in-a-kotlin-multiplatform-test/
|
||||||
tasks.withType<KotlinJvmTest>().configureEach {
|
tasks.withType<Test>().configureEach {
|
||||||
environment("OKHTTP_ROOT", rootDir)
|
environment("OKHTTP_ROOT", rootDir)
|
||||||
}
|
}
|
||||||
tasks.withType<KotlinNativeTest>().configureEach {
|
|
||||||
environment("SIMCTL_CHILD_OKHTTP_ROOT", rootDir)
|
|
||||||
environment("OKHTTP_ROOT", rootDir)
|
|
||||||
}
|
|
||||||
tasks.withType<KotlinJsTest>().configureEach {
|
|
||||||
environment("OKHTTP_ROOT", rootDir.toString())
|
|
||||||
}
|
|
||||||
|
|
||||||
if (platform == "jdk8alpn") {
|
if (platform == "jdk8alpn") {
|
||||||
// Add alpn-boot on Java 8 so we can use HTTP/2 without a stable API.
|
// Add alpn-boot on Java 8 so we can use HTTP/2 without a stable API.
|
||||||
@ -265,31 +253,6 @@ subprojects {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure the kotlinMultiplatform artifact to depend on the JVM artifact in pom.xml only.
|
|
||||||
// This hack allows Maven users to continue using our original OkHttp artifact names (like
|
|
||||||
// com.squareup.okhttp3:okhttp:5.x.y) even though we changed that artifact from JVM-only
|
|
||||||
// to Kotlin Multiplatform. Note that module.json doesn't need this hack.
|
|
||||||
val mavenPublications = publishingExtension.publications.withType<MavenPublication>()
|
|
||||||
mavenPublications.configureEach {
|
|
||||||
if (name != "jvm") return@configureEach
|
|
||||||
val jvmPublication = this
|
|
||||||
val kmpPublication = mavenPublications.getByName("kotlinMultiplatform")
|
|
||||||
kmpPublication.pom.withXml {
|
|
||||||
val root = asNode()
|
|
||||||
val dependencies = (root["dependencies"] as NodeList).firstOrNull() as Node?
|
|
||||||
?: root.appendNode("dependencies")
|
|
||||||
for (child in dependencies.children().toList()) {
|
|
||||||
dependencies.remove(child as Node)
|
|
||||||
}
|
|
||||||
dependencies.appendNode("dependency").apply {
|
|
||||||
appendNode("groupId", jvmPublication.groupId)
|
|
||||||
appendNode("artifactId", jvmPublication.artifactId)
|
|
||||||
appendNode("version", jvmPublication.version)
|
|
||||||
appendNode("scope", "compile")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,13 +267,6 @@ subprojects {
|
|||||||
ignoredPackages += "okhttp3.tls.internal"
|
ignoredPackages += "okhttp3.tls.internal"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins.withId("org.jetbrains.kotlin.jvm") {
|
|
||||||
val jvmTest by tasks.creating {
|
|
||||||
description = "Get 'gradlew jvmTest' to run the tests of JVM-only modules"
|
|
||||||
dependsOn("test")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.wrapper {
|
tasks.wrapper {
|
||||||
|
@ -26,12 +26,6 @@ import org.gradle.kotlin.dsl.get
|
|||||||
import org.gradle.kotlin.dsl.getByName
|
import org.gradle.kotlin.dsl.getByName
|
||||||
|
|
||||||
fun Project.applyOsgi(vararg bndProperties: String) {
|
fun Project.applyOsgi(vararg bndProperties: String) {
|
||||||
// Configure OSGi for the JVM platform on kotlin-multiplatform.
|
|
||||||
plugins.withId("org.jetbrains.kotlin.multiplatform") {
|
|
||||||
applyOsgi("jvmJar", "jvmOsgiApi", bndProperties)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Configure OSGi for kotlin-jvm.
|
|
||||||
plugins.withId("org.jetbrains.kotlin.jvm") {
|
plugins.withId("org.jetbrains.kotlin.jvm") {
|
||||||
applyOsgi("jar", "osgiApi", bndProperties)
|
applyOsgi("jar", "osgiApi", bndProperties)
|
||||||
}
|
}
|
||||||
|
@ -9,5 +9,5 @@ interpreted by R8 automatically.
|
|||||||
If you, however, don't use R8 you have to apply the rules from [this file][okhttp3_pro]. You might
|
If you, however, don't use R8 you have to apply the rules from [this file][okhttp3_pro]. You might
|
||||||
also need rules from [Okio][okio] which is a dependency of this library.
|
also need rules from [Okio][okio] which is a dependency of this library.
|
||||||
|
|
||||||
[okhttp3_pro]: https://raw.githubusercontent.com/square/okhttp/master/okhttp/src/jvmMain/resources/META-INF/proguard/okhttp3.pro
|
[okhttp3_pro]: https://raw.githubusercontent.com/square/okhttp/master/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro
|
||||||
[okio]: https://square.github.io/okio/
|
[okio]: https://square.github.io/okio/
|
||||||
|
@ -19,6 +19,7 @@ dependencies {
|
|||||||
api(libs.junit)
|
api(libs.junit)
|
||||||
|
|
||||||
testImplementation(libs.assertj.core)
|
testImplementation(libs.assertj.core)
|
||||||
|
testImplementation(libs.assertk)
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
|
@ -15,9 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3.junit4
|
package mockwebserver3.junit4
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isTrue
|
||||||
import java.net.ConnectException
|
import java.net.ConnectException
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.Assert.fail
|
import org.junit.Assert.fail
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.Description
|
import org.junit.runner.Description
|
||||||
@ -34,7 +35,7 @@ class MockWebServerRuleTest {
|
|||||||
}
|
}
|
||||||
}, Description.EMPTY)
|
}, Description.EMPTY)
|
||||||
statement.evaluate()
|
statement.evaluate()
|
||||||
assertThat(called.get()).isTrue
|
assertThat(called.get()).isTrue()
|
||||||
try {
|
try {
|
||||||
rule.server.url("/").toUrl().openConnection().connect()
|
rule.server.url("/").toUrl().openConnection().connect()
|
||||||
fail()
|
fail()
|
||||||
|
@ -30,6 +30,7 @@ dependencies {
|
|||||||
testImplementation(libs.kotlin.junit5)
|
testImplementation(libs.kotlin.junit5)
|
||||||
testImplementation(projects.okhttpTestingSupport)
|
testImplementation(projects.okhttpTestingSupport)
|
||||||
testImplementation(libs.assertj.core)
|
testImplementation(libs.assertj.core)
|
||||||
|
testImplementation(libs.assertk)
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
|
@ -15,11 +15,14 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3.junit5.internal
|
package mockwebserver3.junit5.internal
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import assertk.assertions.isSameAs
|
||||||
|
import assertk.assertions.isTrue
|
||||||
import mockwebserver3.MockResponse
|
import mockwebserver3.MockResponse
|
||||||
import mockwebserver3.MockWebServer
|
import mockwebserver3.MockWebServer
|
||||||
import okhttp3.OkHttpClientTestRule
|
import okhttp3.OkHttpClientTestRule
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.AfterEach
|
import org.junit.jupiter.api.AfterEach
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
@ -15,8 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3.junit5.internal
|
package mockwebserver3.junit5.internal
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import assertk.assertions.isNotEqualTo
|
||||||
|
import assertk.assertions.isTrue
|
||||||
import mockwebserver3.MockWebServer
|
import mockwebserver3.MockWebServer
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.AfterEach
|
import org.junit.jupiter.api.AfterEach
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3.junit5.internal
|
package mockwebserver3.junit5.internal
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isTrue
|
||||||
import mockwebserver3.MockWebServer
|
import mockwebserver3.MockWebServer
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.TestInstance
|
|
||||||
import org.junit.jupiter.api.extension.ExtendWith
|
import org.junit.jupiter.api.extension.ExtendWith
|
||||||
|
|
||||||
@ExtendWith(MockWebServerExtension::class)
|
@ExtendWith(MockWebServerExtension::class)
|
||||||
|
@ -22,6 +22,7 @@ dependencies {
|
|||||||
testRuntimeOnly(projects.mockwebserver3Junit5)
|
testRuntimeOnly(projects.mockwebserver3Junit5)
|
||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
testImplementation(libs.assertj.core)
|
testImplementation(libs.assertj.core)
|
||||||
|
testImplementation(libs.assertk)
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
|
@ -15,11 +15,12 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3
|
package mockwebserver3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.HttpURLConnection
|
import java.net.HttpURLConnection
|
||||||
import java.util.concurrent.CountDownLatch
|
import java.util.concurrent.CountDownLatch
|
||||||
import java.util.concurrent.atomic.AtomicInteger
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.Timeout
|
import org.junit.jupiter.api.Timeout
|
||||||
|
@ -15,6 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3
|
package mockwebserver3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.containsExactly
|
||||||
|
import assertk.assertions.isEmpty
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import assertk.assertions.isTrue
|
||||||
import okhttp3.Dns
|
import okhttp3.Dns
|
||||||
import okhttp3.Headers.Companion.headersOf
|
import okhttp3.Headers.Companion.headersOf
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
@ -24,7 +29,6 @@ import okhttp3.testing.PlatformRule
|
|||||||
import okhttp3.tls.HandshakeCertificates
|
import okhttp3.tls.HandshakeCertificates
|
||||||
import okhttp3.tls.HeldCertificate
|
import okhttp3.tls.HeldCertificate
|
||||||
import okhttp3.tls.internal.TlsUtil.localhost
|
import okhttp3.tls.internal.TlsUtil.localhost
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.extension.RegisterExtension
|
import org.junit.jupiter.api.extension.RegisterExtension
|
||||||
|
@ -15,6 +15,17 @@
|
|||||||
*/
|
*/
|
||||||
package mockwebserver3
|
package mockwebserver3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.contains
|
||||||
|
import assertk.assertions.containsExactly
|
||||||
|
import assertk.assertions.isBetween
|
||||||
|
import assertk.assertions.isCloseTo
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import assertk.assertions.isGreaterThan
|
||||||
|
import assertk.assertions.isGreaterThanOrEqualTo
|
||||||
|
import assertk.assertions.isNotEqualTo
|
||||||
|
import assertk.assertions.isNotNull
|
||||||
|
import assertk.assertions.isNull
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
import java.io.Closeable
|
import java.io.Closeable
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@ -42,8 +53,6 @@ import okhttp3.testing.PlatformRule
|
|||||||
import okhttp3.tls.HandshakeCertificates
|
import okhttp3.tls.HandshakeCertificates
|
||||||
import okhttp3.tls.HeldCertificate
|
import okhttp3.tls.HeldCertificate
|
||||||
import okio.Buffer
|
import okio.Buffer
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.assertj.core.data.Offset
|
|
||||||
import org.junit.jupiter.api.AfterEach
|
import org.junit.jupiter.api.AfterEach
|
||||||
import org.junit.jupiter.api.Assertions.fail
|
import org.junit.jupiter.api.Assertions.fail
|
||||||
import org.junit.jupiter.api.BeforeEach
|
import org.junit.jupiter.api.BeforeEach
|
||||||
@ -371,7 +380,7 @@ class MockWebServerTest {
|
|||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
// Halfway +/- 0.5%
|
// Halfway +/- 0.5%
|
||||||
assertThat(i.toFloat()).isCloseTo(512f, Offset.offset(5f))
|
assertThat(i.toFloat()).isCloseTo(512f, 5f)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -425,12 +434,12 @@ class MockWebServerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun hostnameImplicitlyStarts() {
|
fun hostnameImplicitlyStarts() {
|
||||||
assertThat(server.hostName).isNotNull
|
assertThat(server.hostName).isNotNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun toProxyAddressImplicitlyStarts() {
|
fun toProxyAddressImplicitlyStarts() {
|
||||||
assertThat(server.toProxyAddress()).isNotNull
|
assertThat(server.toProxyAddress()).isNotNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -491,7 +500,7 @@ class MockWebServerTest {
|
|||||||
refusedConnection.responseCode
|
refusedConnection.responseCode
|
||||||
fail<Any?>("Second connection should be refused")
|
fail<Any?>("Second connection should be refused")
|
||||||
} catch (e: ConnectException) {
|
} catch (e: ConnectException) {
|
||||||
assertThat(e.message).contains("refused")
|
assertThat(e.message!!).contains("refused")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -579,9 +588,9 @@ class MockWebServerTest {
|
|||||||
val request = server.takeRequest()
|
val request = server.takeRequest()
|
||||||
assertThat(request.requestUrl!!.scheme).isEqualTo("https")
|
assertThat(request.requestUrl!!.scheme).isEqualTo("https")
|
||||||
val handshake = request.handshake
|
val handshake = request.handshake
|
||||||
assertThat(handshake!!.tlsVersion).isNotNull
|
assertThat(handshake!!.tlsVersion).isNotNull()
|
||||||
assertThat(handshake.cipherSuite).isNotNull
|
assertThat(handshake.cipherSuite).isNotNull()
|
||||||
assertThat(handshake.localPrincipal).isNotNull
|
assertThat(handshake.localPrincipal).isNotNull()
|
||||||
assertThat(handshake.localCertificates.size).isEqualTo(1)
|
assertThat(handshake.localCertificates.size).isEqualTo(1)
|
||||||
assertThat(handshake.peerPrincipal).isNull()
|
assertThat(handshake.peerPrincipal).isNull()
|
||||||
assertThat(handshake.peerCertificates.size).isEqualTo(0)
|
assertThat(handshake.peerCertificates.size).isEqualTo(0)
|
||||||
@ -628,11 +637,11 @@ class MockWebServerTest {
|
|||||||
val request = server.takeRequest()
|
val request = server.takeRequest()
|
||||||
assertThat(request.requestUrl!!.scheme).isEqualTo("https")
|
assertThat(request.requestUrl!!.scheme).isEqualTo("https")
|
||||||
val handshake = request.handshake
|
val handshake = request.handshake
|
||||||
assertThat(handshake!!.tlsVersion).isNotNull
|
assertThat(handshake!!.tlsVersion).isNotNull()
|
||||||
assertThat(handshake.cipherSuite).isNotNull
|
assertThat(handshake.cipherSuite).isNotNull()
|
||||||
assertThat(handshake.localPrincipal).isNotNull
|
assertThat(handshake.localPrincipal).isNotNull()
|
||||||
assertThat(handshake.localCertificates.size).isEqualTo(1)
|
assertThat(handshake.localCertificates.size).isEqualTo(1)
|
||||||
assertThat(handshake.peerPrincipal).isNotNull
|
assertThat(handshake.peerPrincipal).isNotNull()
|
||||||
assertThat(handshake.peerCertificates.size).isEqualTo(1)
|
assertThat(handshake.peerCertificates.size).isEqualTo(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,13 +16,14 @@
|
|||||||
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||||
package mockwebserver3
|
package mockwebserver3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.net.Socket
|
import java.net.Socket
|
||||||
import okhttp3.Headers
|
import okhttp3.Headers
|
||||||
import okhttp3.Headers.Companion.headersOf
|
import okhttp3.Headers.Companion.headersOf
|
||||||
import okhttp3.internal.EMPTY_HEADERS
|
import okhttp3.internal.EMPTY_HEADERS
|
||||||
import okio.Buffer
|
import okio.Buffer
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.Timeout
|
import org.junit.jupiter.api.Timeout
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import com.vanniktech.maven.publish.JavadocJar
|
import com.vanniktech.maven.publish.JavadocJar
|
||||||
import com.vanniktech.maven.publish.KotlinMultiplatform
|
import com.vanniktech.maven.publish.KotlinJvm
|
||||||
import org.apache.tools.ant.taskdefs.condition.Os
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform")
|
kotlin("jvm")
|
||||||
id("org.jetbrains.dokka")
|
id("org.jetbrains.dokka")
|
||||||
id("com.vanniktech.maven.publish.base")
|
id("com.vanniktech.maven.publish.base")
|
||||||
id("com.palantir.graal")
|
id("com.palantir.graal")
|
||||||
@ -11,57 +11,37 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val copyResourcesTemplates = tasks.register<Copy>("copyResourcesTemplates") {
|
val copyResourcesTemplates = tasks.register<Copy>("copyResourcesTemplates") {
|
||||||
from("src/jvmMain/resources-templates")
|
from("src/main/resources-templates")
|
||||||
into("$buildDir/generated/resources-templates")
|
into("$buildDir/generated/resources-templates")
|
||||||
expand("projectVersion" to "${project.version}")
|
expand("projectVersion" to "${project.version}")
|
||||||
filteringCharset = Charsets.UTF_8.toString()
|
filteringCharset = Charsets.UTF_8.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm()
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
val jvmMain by getting {
|
val main by getting {
|
||||||
resources.srcDir(copyResourcesTemplates.get().outputs)
|
resources.srcDir(copyResourcesTemplates.get().outputs)
|
||||||
dependencies {
|
|
||||||
api(libs.kotlin.stdlib)
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
api(libs.kotlin.stdlib)
|
|
||||||
api(projects.okhttp)
|
|
||||||
api(projects.loggingInterceptor)
|
|
||||||
api(libs.squareup.okio)
|
|
||||||
implementation(libs.clikt)
|
|
||||||
api(libs.guava.jre)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val jvmTest by getting {
|
|
||||||
dependencies {
|
|
||||||
api(libs.kotlin.stdlib)
|
|
||||||
implementation(projects.okhttpTestingSupport)
|
|
||||||
api(libs.squareup.okio)
|
|
||||||
api(libs.assertk)
|
|
||||||
implementation(kotlin("test"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Workaround for https://github.com/palantir/gradle-graal/issues/129
|
|
||||||
// Add a second configuration to populate
|
|
||||||
// runtimeClasspath vs jvmRuntimeClasspath
|
|
||||||
val main by register("main") {
|
|
||||||
dependencies {
|
|
||||||
implementation(libs.kotlin.stdlib)
|
|
||||||
implementation(projects.okhttp)
|
|
||||||
implementation(projects.loggingInterceptor)
|
|
||||||
implementation(libs.squareup.okio)
|
|
||||||
implementation(libs.clikt)
|
|
||||||
implementation(libs.guava.jre)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api(libs.kotlin.stdlib)
|
||||||
|
api(projects.okhttp)
|
||||||
|
api(projects.loggingInterceptor)
|
||||||
|
api(libs.squareup.okio)
|
||||||
|
implementation(libs.clikt)
|
||||||
|
api(libs.guava.jre)
|
||||||
|
|
||||||
|
testImplementation(projects.okhttpTestingSupport)
|
||||||
|
testApi(libs.assertk)
|
||||||
|
testImplementation(kotlin("test"))
|
||||||
|
}
|
||||||
|
|
||||||
|
animalsniffer {
|
||||||
|
isIgnoreFailures = true
|
||||||
|
}
|
||||||
|
|
||||||
tasks.jar {
|
tasks.jar {
|
||||||
manifest {
|
manifest {
|
||||||
attributes("Automatic-Module-Name" to "okhttp3.curl")
|
attributes("Automatic-Module-Name" to "okhttp3.curl")
|
||||||
@ -89,18 +69,6 @@ graal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Workaround for https://github.com/palantir/gradle-graal/issues/129
|
|
||||||
// Copy the jvmJar output into the normal jar location
|
|
||||||
val copyJvmJar = tasks.register<Copy>("copyJvmJar") {
|
|
||||||
val sourceFile = project.tasks.getByName("jvmJar").outputs.files.singleFile
|
|
||||||
val destinationFile = project.tasks.getByName("jar").outputs.files.singleFile
|
|
||||||
from(sourceFile)
|
|
||||||
into(destinationFile.parentFile)
|
|
||||||
rename (sourceFile.name, destinationFile.name)
|
|
||||||
}
|
|
||||||
tasks.getByName("copyJvmJar").dependsOn(tasks.getByName("jvmJar"))
|
|
||||||
tasks.getByName("nativeImage").dependsOn(copyJvmJar)
|
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
configure(KotlinMultiplatform(javadocJar = JavadocJar.Empty()))
|
configure(KotlinJvm(javadocJar = JavadocJar.Empty()))
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,7 @@ dependencies {
|
|||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
testImplementation(libs.junit.ktx)
|
testImplementation(libs.junit.ktx)
|
||||||
testImplementation(libs.assertj.core)
|
testImplementation(libs.assertj.core)
|
||||||
|
testImplementation(libs.assertk)
|
||||||
testImplementation(projects.okhttpTls)
|
testImplementation(projects.okhttpTls)
|
||||||
testImplementation(libs.androidx.test.runner)
|
testImplementation(libs.androidx.test.runner)
|
||||||
testImplementation(libs.robolectric)
|
testImplementation(libs.robolectric)
|
||||||
@ -64,6 +65,7 @@ dependencies {
|
|||||||
|
|
||||||
androidTestImplementation(projects.okhttpTls)
|
androidTestImplementation(projects.okhttpTls)
|
||||||
androidTestImplementation(libs.assertj.core)
|
androidTestImplementation(libs.assertj.core)
|
||||||
|
androidTestImplementation(libs.assertk)
|
||||||
androidTestImplementation(projects.mockwebserver3Junit4)
|
androidTestImplementation(projects.mockwebserver3Junit4)
|
||||||
androidTestImplementation(libs.androidx.test.runner)
|
androidTestImplementation(libs.androidx.test.runner)
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,16 @@ import android.content.Context
|
|||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.test.platform.app.InstrumentationRegistry
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.hasMessage
|
||||||
|
import assertk.assertions.isEmpty
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import assertk.assertions.isNotEmpty
|
||||||
|
import assertk.assertions.isNull
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.net.UnknownHostException
|
import java.net.UnknownHostException
|
||||||
import java.util.concurrent.CountDownLatch
|
import java.util.concurrent.CountDownLatch
|
||||||
import mockwebserver3.MockResponse
|
import mockwebserver3.MockResponse
|
||||||
import mockwebserver3.MockWebServer
|
|
||||||
import mockwebserver3.junit4.MockWebServerRule
|
import mockwebserver3.junit4.MockWebServerRule
|
||||||
import okhttp3.AsyncDns
|
import okhttp3.AsyncDns
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
@ -33,9 +38,7 @@ import okhttp3.Request
|
|||||||
import okhttp3.tls.HandshakeCertificates
|
import okhttp3.tls.HandshakeCertificates
|
||||||
import okhttp3.tls.HeldCertificate
|
import okhttp3.tls.HeldCertificate
|
||||||
import okio.IOException
|
import okio.IOException
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.assertj.core.api.Assertions.fail
|
import org.assertj.core.api.Assertions.fail
|
||||||
import org.junit.Assume
|
|
||||||
import org.junit.Assume.assumeTrue
|
import org.junit.Assume.assumeTrue
|
||||||
import org.junit.AssumptionViolatedException
|
import org.junit.AssumptionViolatedException
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
@ -115,7 +118,7 @@ class AndroidAsyncDnsTest {
|
|||||||
val (allAddresses, exception) = dnsQuery("localhost")
|
val (allAddresses, exception) = dnsQuery("localhost")
|
||||||
|
|
||||||
assertThat(exception).isNull()
|
assertThat(exception).isNull()
|
||||||
assertThat(allAddresses).isNotEmpty
|
assertThat(allAddresses).isNotEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun dnsQuery(hostname: String): Pair<List<InetAddress>, Exception?> {
|
private fun dnsQuery(hostname: String): Pair<List<InetAddress>, Exception?> {
|
||||||
@ -148,7 +151,7 @@ class AndroidAsyncDnsTest {
|
|||||||
val (allAddresses, exception) = dnsQuery("google.com")
|
val (allAddresses, exception) = dnsQuery("google.com")
|
||||||
|
|
||||||
assertThat(exception).isNull()
|
assertThat(exception).isNull()
|
||||||
assertThat(allAddresses).isNotEmpty
|
assertThat(allAddresses).isNotEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -19,22 +19,24 @@ package okhttp3.android
|
|||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import okhttp3.CacheControl
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
|
import assertk.assertions.isNotNull
|
||||||
|
import assertk.assertions.isNull
|
||||||
|
import java.net.InetAddress
|
||||||
|
import java.net.UnknownHostException
|
||||||
|
import okhttp3.Cache
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import okio.Path.Companion.toPath
|
||||||
|
import okio.fakefilesystem.FakeFileSystem
|
||||||
import org.junit.AssumptionViolatedException
|
import org.junit.AssumptionViolatedException
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import java.net.InetAddress
|
|
||||||
import java.net.UnknownHostException
|
|
||||||
import okhttp3.Cache
|
|
||||||
import okio.Path.Companion.toPath
|
|
||||||
import okio.fakefilesystem.FakeFileSystem
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@Config(
|
@Config(
|
||||||
|
@ -23,6 +23,7 @@ dependencies {
|
|||||||
testImplementation(libs.conscrypt.openjdk)
|
testImplementation(libs.conscrypt.openjdk)
|
||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
testImplementation(libs.assertj.core)
|
testImplementation(libs.assertj.core)
|
||||||
|
testImplementation(libs.assertk)
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
|
@ -15,6 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3.brotli
|
package okhttp3.brotli
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.contains
|
||||||
|
import assertk.assertions.hasMessage
|
||||||
|
import assertk.assertions.isEmpty
|
||||||
|
import assertk.assertions.isEqualTo
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.Protocol
|
import okhttp3.Protocol
|
||||||
@ -26,7 +31,6 @@ import okio.ByteString
|
|||||||
import okio.ByteString.Companion.EMPTY
|
import okio.ByteString.Companion.EMPTY
|
||||||
import okio.ByteString.Companion.decodeHex
|
import okio.ByteString.Companion.decodeHex
|
||||||
import okio.ByteString.Companion.encodeUtf8
|
import okio.ByteString.Companion.encodeUtf8
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
import org.junit.jupiter.api.fail
|
import org.junit.jupiter.api.fail
|
||||||
|
|
||||||
|
@ -1,48 +1,33 @@
|
|||||||
import com.vanniktech.maven.publish.JavadocJar
|
import com.vanniktech.maven.publish.JavadocJar
|
||||||
import com.vanniktech.maven.publish.KotlinMultiplatform
|
import com.vanniktech.maven.publish.KotlinJvm
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform")
|
kotlin("jvm")
|
||||||
id("org.jetbrains.dokka")
|
id("org.jetbrains.dokka")
|
||||||
id("com.vanniktech.maven.publish.base")
|
id("com.vanniktech.maven.publish.base")
|
||||||
id("binary-compatibility-validator")
|
id("binary-compatibility-validator")
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
|
||||||
jvm {
|
|
||||||
withJava()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
getByName("jvmMain") {
|
|
||||||
dependencies {
|
|
||||||
api(projects.okhttp)
|
|
||||||
implementation(libs.kotlinx.coroutines.core)
|
|
||||||
api(libs.squareup.okio)
|
|
||||||
api(libs.kotlin.stdlib)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
getByName("jvmTest") {
|
|
||||||
dependencies {
|
|
||||||
implementation(libs.kotlin.test.common)
|
|
||||||
implementation(libs.kotlin.test.annotations)
|
|
||||||
api(libs.assertk)
|
|
||||||
implementation(projects.okhttpTestingSupport)
|
|
||||||
implementation(libs.kotlinx.coroutines.test)
|
|
||||||
implementation(projects.mockwebserver3Junit5)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
project.applyOsgi(
|
project.applyOsgi(
|
||||||
"Export-Package: okhttp3.coroutines",
|
"Export-Package: okhttp3.coroutines",
|
||||||
"Automatic-Module-Name: okhttp3.coroutines",
|
"Automatic-Module-Name: okhttp3.coroutines",
|
||||||
"Bundle-SymbolicName: com.squareup.okhttp3.coroutines"
|
"Bundle-SymbolicName: com.squareup.okhttp3.coroutines"
|
||||||
)
|
)
|
||||||
|
|
||||||
mavenPublishing {
|
dependencies {
|
||||||
configure(
|
api(projects.okhttp)
|
||||||
KotlinMultiplatform(javadocJar = JavadocJar.Empty())
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
)
|
api(libs.squareup.okio)
|
||||||
|
api(libs.kotlin.stdlib)
|
||||||
|
|
||||||
|
testImplementation(libs.kotlin.test.common)
|
||||||
|
testImplementation(libs.kotlin.test.annotations)
|
||||||
|
testApi(libs.assertk)
|
||||||
|
testImplementation(projects.okhttpTestingSupport)
|
||||||
|
testImplementation(libs.kotlinx.coroutines.test)
|
||||||
|
testImplementation(projects.mockwebserver3Junit5)
|
||||||
|
}
|
||||||
|
|
||||||
|
mavenPublishing {
|
||||||
|
configure(KotlinJvm(javadocJar = JavadocJar.Empty()))
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ dependencies {
|
|||||||
testImplementation(projects.okhttpTestingSupport)
|
testImplementation(projects.okhttpTestingSupport)
|
||||||
testImplementation(projects.okhttpTls)
|
testImplementation(projects.okhttpTls)
|
||||||
testImplementation(libs.assertj.core)
|
testImplementation(libs.assertj.core)
|
||||||
|
testImplementation(libs.assertk)
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
|
@ -15,9 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3.logging
|
package okhttp3.logging
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isFalse
|
||||||
|
import assertk.assertions.isTrue
|
||||||
import okhttp3.logging.internal.isProbablyUtf8
|
import okhttp3.logging.internal.isProbablyUtf8
|
||||||
import okio.Buffer
|
import okio.Buffer
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
class IsProbablyUtf8Test {
|
class IsProbablyUtf8Test {
|
||||||
|
@ -1,47 +1,33 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform")
|
kotlin("jvm")
|
||||||
id("ru.vyarus.animalsniffer")
|
id("ru.vyarus.animalsniffer")
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
|
||||||
jvm {
|
|
||||||
withJava()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
|
||||||
val jvmMain by getting {
|
|
||||||
dependencies {
|
|
||||||
api(libs.squareup.okio)
|
|
||||||
api(projects.okhttp)
|
|
||||||
api(projects.okhttpTls)
|
|
||||||
api(libs.assertj.core)
|
|
||||||
api(libs.bouncycastle.bcprov)
|
|
||||||
implementation(libs.bouncycastle.bcpkix)
|
|
||||||
implementation(libs.bouncycastle.bctls)
|
|
||||||
api(libs.conscrypt.openjdk)
|
|
||||||
api(libs.openjsse)
|
|
||||||
|
|
||||||
api(libs.amazonCorretto)
|
|
||||||
|
|
||||||
api(libs.hamcrestLibrary)
|
|
||||||
api(libs.junit.jupiter.api)
|
|
||||||
api(libs.junit.jupiter.params)
|
|
||||||
|
|
||||||
api(libs.junit.pioneer)
|
|
||||||
|
|
||||||
compileOnly(libs.findbugs.jsr305)
|
|
||||||
compileOnly(libs.robolectric.android)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val jvmMainApi by configurations.getting
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
jvmMainApi(variantOf(libs.amazonCorretto) {
|
api(libs.squareup.okio)
|
||||||
|
api(projects.okhttp)
|
||||||
|
api(projects.okhttpTls)
|
||||||
|
api(libs.assertj.core)
|
||||||
|
api(libs.assertk)
|
||||||
|
api(libs.bouncycastle.bcprov)
|
||||||
|
implementation(libs.bouncycastle.bcpkix)
|
||||||
|
implementation(libs.bouncycastle.bctls)
|
||||||
|
api(libs.conscrypt.openjdk)
|
||||||
|
api(libs.openjsse)
|
||||||
|
|
||||||
|
api(variantOf(libs.amazonCorretto) {
|
||||||
classifier("linux-x86_64")
|
classifier("linux-x86_64")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
api(libs.hamcrestLibrary)
|
||||||
|
api(libs.junit.jupiter.api)
|
||||||
|
api(libs.junit.jupiter.params)
|
||||||
|
|
||||||
|
api(libs.junit.pioneer)
|
||||||
|
|
||||||
|
compileOnly(libs.findbugs.jsr305)
|
||||||
|
compileOnly(libs.robolectric.android)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
animalsniffer {
|
animalsniffer {
|
||||||
|
@ -15,10 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3
|
package okhttp3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.containsExactly
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.net.UnknownHostException
|
import java.net.UnknownHostException
|
||||||
import okio.Buffer
|
import okio.Buffer
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
|
|
||||||
class FakeDns : Dns {
|
class FakeDns : Dns {
|
||||||
private val hostAddresses: MutableMap<String, List<InetAddress>> = mutableMapOf()
|
private val hostAddresses: MutableMap<String, List<InetAddress>> = mutableMapOf()
|
@ -15,15 +15,17 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3
|
package okhttp3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isCloseTo
|
||||||
|
import assertk.assertions.isFalse
|
||||||
|
import assertk.assertions.isInstanceOf
|
||||||
|
import assertk.assertions.matchesPredicate
|
||||||
import java.util.Deque
|
import java.util.Deque
|
||||||
import java.util.concurrent.ConcurrentLinkedDeque
|
import java.util.concurrent.ConcurrentLinkedDeque
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import okhttp3.ConnectionEvent.NoNewExchanges
|
import okhttp3.ConnectionEvent.NoNewExchanges
|
||||||
import okhttp3.internal.connection.RealConnection
|
import okhttp3.internal.connection.RealConnection
|
||||||
import okhttp3.internal.platform.Platform
|
|
||||||
import okio.IOException
|
import okio.IOException
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.assertj.core.data.Offset
|
|
||||||
import org.junit.jupiter.api.Assertions
|
import org.junit.jupiter.api.Assertions
|
||||||
|
|
||||||
open class RecordingConnectionListener(
|
open class RecordingConnectionListener(
|
||||||
@ -88,7 +90,7 @@ open class RecordingConnectionListener(
|
|||||||
TimeUnit.NANOSECONDS.toMillis(actualElapsedNs)
|
TimeUnit.NANOSECONDS.toMillis(actualElapsedNs)
|
||||||
.toDouble()
|
.toDouble()
|
||||||
)
|
)
|
||||||
.isCloseTo(elapsedMs.toDouble(), Offset.offset(100.0))
|
.isCloseTo(elapsedMs.toDouble(), 100.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
@ -104,13 +106,11 @@ open class RecordingConnectionListener(
|
|||||||
|
|
||||||
private fun logEvent(e: ConnectionEvent) {
|
private fun logEvent(e: ConnectionEvent) {
|
||||||
if (e.connection != null) {
|
if (e.connection != null) {
|
||||||
assertThat(Thread.holdsLock(e.connection))
|
assertThat(Thread.holdsLock(e.connection), "Called with lock $${e.connection}")
|
||||||
.overridingErrorMessage("Called with lock $${e.connection}")
|
|
||||||
.isFalse()
|
.isFalse()
|
||||||
}
|
}
|
||||||
for (lock in forbiddenLocks) {
|
for (lock in forbiddenLocks) {
|
||||||
assertThat(Thread.holdsLock(lock))
|
assertThat(Thread.holdsLock(lock), "Called with lock $lock")
|
||||||
.overridingErrorMessage("Called with lock $lock")
|
|
||||||
.isFalse()
|
.isFalse()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,7 +153,9 @@ open class RecordingConnectionListener(
|
|||||||
override fun connectionReleased(connection: Connection, call: Call) {
|
override fun connectionReleased(connection: Connection, call: Call) {
|
||||||
if (eventSequence.find { it is ConnectionEvent.ConnectStart && it.connection == connection } != null && connection is RealConnection) {
|
if (eventSequence.find { it is ConnectionEvent.ConnectStart && it.connection == connection } != null && connection is RealConnection) {
|
||||||
if (connection.noNewExchanges) {
|
if (connection.noNewExchanges) {
|
||||||
assertThat(eventSequence).anyMatch { it is NoNewExchanges && it.connection == connection }
|
assertThat(eventSequence).matchesPredicate { deque ->
|
||||||
|
deque.any { it is NoNewExchanges && it.connection == connection }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -15,9 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3
|
package okhttp3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.containsExactly
|
||||||
import java.util.ArrayDeque
|
import java.util.ArrayDeque
|
||||||
import java.util.Deque
|
import java.util.Deque
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
|
|
||||||
class RecordingCookieJar : CookieJar {
|
class RecordingCookieJar : CookieJar {
|
||||||
private val requestCookies: Deque<List<Cookie>> = ArrayDeque()
|
private val requestCookies: Deque<List<Cookie>> = ArrayDeque()
|
@ -15,6 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3
|
package okhttp3
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.isCloseTo
|
||||||
|
import assertk.assertions.isFalse
|
||||||
|
import assertk.assertions.isInstanceOf
|
||||||
|
import assertk.assertions.matchesPredicate
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.InetAddress
|
import java.net.InetAddress
|
||||||
import java.net.InetSocketAddress
|
import java.net.InetSocketAddress
|
||||||
@ -51,11 +56,7 @@ import okhttp3.CallEvent.ResponseHeadersStart
|
|||||||
import okhttp3.CallEvent.SatisfactionFailure
|
import okhttp3.CallEvent.SatisfactionFailure
|
||||||
import okhttp3.CallEvent.SecureConnectEnd
|
import okhttp3.CallEvent.SecureConnectEnd
|
||||||
import okhttp3.CallEvent.SecureConnectStart
|
import okhttp3.CallEvent.SecureConnectStart
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
import org.assertj.core.data.Offset
|
|
||||||
import org.junit.jupiter.api.Assertions.assertTrue
|
|
||||||
import org.junit.jupiter.api.Assertions.fail
|
import org.junit.jupiter.api.Assertions.fail
|
||||||
import org.junit.jupiter.api.fail
|
|
||||||
|
|
||||||
open class RecordingEventListener(
|
open class RecordingEventListener(
|
||||||
/**
|
/**
|
||||||
@ -119,7 +120,7 @@ open class RecordingEventListener(
|
|||||||
TimeUnit.NANOSECONDS.toMillis(actualElapsedNs)
|
TimeUnit.NANOSECONDS.toMillis(actualElapsedNs)
|
||||||
.toDouble()
|
.toDouble()
|
||||||
)
|
)
|
||||||
.isCloseTo(elapsedMs.toDouble(), Offset.offset(100.0))
|
.isCloseTo(elapsedMs.toDouble(), 100.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
@ -135,9 +136,7 @@ open class RecordingEventListener(
|
|||||||
|
|
||||||
private fun logEvent(e: CallEvent) {
|
private fun logEvent(e: CallEvent) {
|
||||||
for (lock in forbiddenLocks) {
|
for (lock in forbiddenLocks) {
|
||||||
assertThat(Thread.holdsLock(lock))
|
assertThat(Thread.holdsLock(lock), lock.toString()).isFalse()
|
||||||
.overridingErrorMessage(lock.toString())
|
|
||||||
.isFalse()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enforceOrder) {
|
if (enforceOrder) {
|
||||||
@ -149,7 +148,7 @@ open class RecordingEventListener(
|
|||||||
|
|
||||||
private fun checkForStartEvent(e: CallEvent) {
|
private fun checkForStartEvent(e: CallEvent) {
|
||||||
if (eventSequence.isEmpty()) {
|
if (eventSequence.isEmpty()) {
|
||||||
assertThat(e).isInstanceOfAny(CallStart::class.java, Canceled::class.java)
|
assertThat(e).matchesPredicate { it is CallStart || it is Canceled }
|
||||||
} else {
|
} else {
|
||||||
eventSequence.forEach loop@ {
|
eventSequence.forEach loop@ {
|
||||||
when (e.closes(it)) {
|
when (e.closes(it)) {
|
@ -15,8 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package okhttp3.internal.concurrent
|
package okhttp3.internal.concurrent
|
||||||
|
|
||||||
import okhttp3.OkHttpClient
|
import assertk.assertThat
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import assertk.assertions.isEmpty
|
||||||
import java.io.Closeable
|
import java.io.Closeable
|
||||||
import java.util.AbstractQueue
|
import java.util.AbstractQueue
|
||||||
import java.util.concurrent.BlockingQueue
|
import java.util.concurrent.BlockingQueue
|
||||||
@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit
|
|||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import java.util.logging.Logger
|
import java.util.logging.Logger
|
||||||
import kotlin.concurrent.withLock
|
import kotlin.concurrent.withLock
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs a [TaskRunner] in a controlled environment so that everything is sequential and
|
* Runs a [TaskRunner] in a controlled environment so that everything is sequential and
|
@ -16,6 +16,8 @@
|
|||||||
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
|
||||||
package okhttp3.internal.http
|
package okhttp3.internal.http
|
||||||
|
|
||||||
|
import assertk.assertThat
|
||||||
|
import assertk.assertions.containsExactly
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.InetSocketAddress
|
import java.net.InetSocketAddress
|
||||||
import java.net.Proxy
|
import java.net.Proxy
|
||||||
@ -23,7 +25,6 @@ import java.net.ProxySelector
|
|||||||
import java.net.SocketAddress
|
import java.net.SocketAddress
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import okhttp3.internal.format
|
import okhttp3.internal.format
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
|
||||||
|
|
||||||
class RecordingProxySelector : ProxySelector() {
|
class RecordingProxySelector : ProxySelector() {
|
||||||
@JvmField val proxies = mutableListOf<Proxy>()
|
@JvmField val proxies = mutableListOf<Proxy>()
|
@ -1,8 +1,8 @@
|
|||||||
import com.vanniktech.maven.publish.JavadocJar
|
import com.vanniktech.maven.publish.JavadocJar
|
||||||
import com.vanniktech.maven.publish.KotlinMultiplatform
|
import com.vanniktech.maven.publish.KotlinJvm
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("multiplatform")
|
kotlin("jvm")
|
||||||
kotlin("plugin.serialization")
|
kotlin("plugin.serialization")
|
||||||
id("org.jetbrains.dokka")
|
id("org.jetbrains.dokka")
|
||||||
id("com.vanniktech.maven.publish.base")
|
id("com.vanniktech.maven.publish.base")
|
||||||
@ -11,7 +11,7 @@ plugins {
|
|||||||
|
|
||||||
// Build & use okhttp3/internal/-InternalVersion.kt
|
// Build & use okhttp3/internal/-InternalVersion.kt
|
||||||
val copyKotlinTemplates = tasks.register<Copy>("copyKotlinTemplates") {
|
val copyKotlinTemplates = tasks.register<Copy>("copyKotlinTemplates") {
|
||||||
from("src/jvmMain/kotlinTemplates")
|
from("src/main/kotlinTemplates")
|
||||||
into("$buildDir/generated/sources/kotlinTemplates")
|
into("$buildDir/generated/sources/kotlinTemplates")
|
||||||
expand("projectVersion" to project.version)
|
expand("projectVersion" to project.version)
|
||||||
filteringCharset = Charsets.UTF_8.toString()
|
filteringCharset = Charsets.UTF_8.toString()
|
||||||
@ -30,67 +30,10 @@ val generateIdnaMappingTable by tasks.creating(JavaExec::class.java) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
jvm {
|
|
||||||
withJava()
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
getByName("jvmMain") {
|
getByName("main") {
|
||||||
kotlin.srcDir(copyKotlinTemplates.get().outputs)
|
kotlin.srcDir(copyKotlinTemplates.get().outputs)
|
||||||
kotlin.srcDir(generateIdnaMappingTable.outputs)
|
kotlin.srcDir(generateIdnaMappingTable.outputs)
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
getByName("jvmTest") {
|
|
||||||
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.assertj.core)
|
|
||||||
implementation(libs.openjsse)
|
|
||||||
implementation(libs.aqute.resolve)
|
|
||||||
compileOnly(libs.findbugs.jsr305)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -145,17 +88,66 @@ val osgiTestDeploy: Configuration by configurations.creating
|
|||||||
|
|
||||||
val copyOsgiTestDeployment by tasks.creating(Copy::class.java) {
|
val copyOsgiTestDeployment by tasks.creating(Copy::class.java) {
|
||||||
from(osgiTestDeploy)
|
from(osgiTestDeploy)
|
||||||
into("$buildDir/resources/jvmTest/okhttp3/osgi/deployments")
|
into("$buildDir/resources/test/okhttp3/osgi/deployments")
|
||||||
}
|
}
|
||||||
tasks.getByName("jvmTest") {
|
tasks.getByName("test") {
|
||||||
dependsOn(copyOsgiTestDeployment)
|
dependsOn(copyOsgiTestDeployment)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
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.assertj.core)
|
||||||
|
testImplementation(libs.openjsse)
|
||||||
|
testImplementation(libs.aqute.resolve)
|
||||||
|
testCompileOnly(libs.findbugs.jsr305)
|
||||||
|
|
||||||
osgiTestDeploy(libs.eclipseOsgi)
|
osgiTestDeploy(libs.eclipseOsgi)
|
||||||
osgiTestDeploy(libs.kotlin.stdlib.osgi)
|
osgiTestDeploy(libs.kotlin.stdlib.osgi)
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenPublishing {
|
mavenPublishing {
|
||||||
configure(KotlinMultiplatform(javadocJar = JavadocJar.Empty()))
|
configure(KotlinJvm(javadocJar = JavadocJar.Empty()))
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user