diff --git a/android-test/build.gradle.kts b/android-test/build.gradle.kts index df2bb8a53..63995ae91 100644 --- a/android-test/build.gradle.kts +++ b/android-test/build.gradle.kts @@ -58,7 +58,7 @@ dependencies { androidTestImplementation(Dependencies.bouncycastle) androidTestImplementation(Dependencies.bouncycastletls) androidTestImplementation(Dependencies.conscryptAndroid) - androidTestImplementation(project(":mockwebserver-junit5")) + androidTestImplementation(project(":mockwebserver3-junit5")) androidTestImplementation(project(":okhttp-brotli")) androidTestImplementation(project(":okhttp-dnsoverhttps")) androidTestImplementation(project(":okhttp-logging-interceptor")) diff --git a/build.gradle.kts b/build.gradle.kts index 42ab41e29..2f43c317d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,5 @@ -import java.net.URI +import com.vanniktech.maven.publish.MavenPublishBaseExtension +import com.vanniktech.maven.publish.SonatypeHost import java.net.URL import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.jetbrains.dokka.gradle.DokkaTask @@ -18,6 +19,7 @@ buildscript { classpath(Dependencies.animalsnifferPlugin) classpath(Dependencies.errorpronePlugin) classpath(Dependencies.spotlessPlugin) + classpath(Dependencies.vanniktechPublishPlugin) } repositories { @@ -27,9 +29,10 @@ buildscript { } } +apply(plugin = "com.vanniktech.maven.publish.base") + allprojects { group = "com.squareup.okhttp3" - project.ext["artifactId"] = project.name.publishedArtifactId() version = "5.0.0-SNAPSHOT" repositories { @@ -176,101 +179,60 @@ subprojects { sourceCompatibility = JavaVersion.VERSION_1_8.toString() targetCompatibility = JavaVersion.VERSION_1_8.toString() } - - tasks.withType { - configuration { - reportUndocumented = false - skipDeprecated = true - jdkVersion = 8 - perPackageOption { - prefix = "okhttp3.internal" - suppress = true - } - perPackageOption { - prefix = "mockwebserver3.internal" - suppress = true - } - if (project.file("Module.md").exists()) { - includes = listOf("Module.md") - } - externalDocumentationLink { - url = URL("https://square.github.io/okio/2.x/okio/") - packageListUrl = URL("https://square.github.io/okio/2.x/okio/package-list") - } - } - } } /** Configure publishing and signing for published Java and JavaPlatform subprojects. */ subprojects { - val project = this@subprojects - if (project.ext.get("artifactId") == null) return@subprojects - val bom = project.ext["artifactId"] == "okhttp-bom" - - if (bom) { - apply(plugin = "java-platform") - } - - apply(plugin = "maven-publish") - apply(plugin = "signing") - - configure { - if (!bom) { - configure { - withJavadocJar() - withSourcesJar() + tasks.withType().configureEach { + dokkaSourceSets.configureEach { + reportUndocumented.set(false) + skipDeprecated.set(true) + jdkVersion.set(8) + perPackageOption { + matchingRegex.set("okhttp3\\.internal.*") + suppress.set(true) } - } - - publications { - create("maven") { - groupId = project.group.toString() - artifactId = project.ext["artifactId"].toString() - version = project.version.toString() - if (bom) { - from(components["javaPlatform"]) - } else { - from(components["java"]) - } - pom { - name.set(project.name) - description.set("Square’s meticulous HTTP client for Java and Kotlin.") - url.set("https://square.github.io/okhttp/") - licenses { - license { - name.set("The Apache Software License, Version 2.0") - url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") - } - } - developers { - developer { - name.set("Square, Inc.") - } - } - scm { - connection.set("scm:git:https://github.com/square/okhttp.git") - developerConnection.set("scm:git:ssh://git@github.com/square/okhttp.git") - url.set("https://github.com/square/okhttp") - } - } + perPackageOption { + matchingRegex.set("mockwebserver3\\.internal.*") + suppress.set(true) } - } - - repositories { - maven { - name = "mavencentral" - url = URI("https://oss.sonatype.org/service/local/staging/deploy/maven2/") - credentials { - username = System.getenv("SONATYPE_NEXUS_USERNAME") - password = System.getenv("SONATYPE_NEXUS_PASSWORD") - } + if (project.file("Module.md").exists()) { + includes.from(project.file("Module.md")) + } + externalDocumentationLink { + url.set(URL("https://square.github.io/okio/2.x/okio/")) + packageListUrl.set(URL("https://square.github.io/okio/2.x/okio/package-list")) } } } - val publishing = extensions.getByType() - configure { - sign(publishing.publications["maven"]) + plugins.withId("com.vanniktech.maven.publish.base") { + configure { + publishToMavenCentral(SonatypeHost.DEFAULT) + signAllPublications() + pom { + name.set(project.name) + description.set("Square’s meticulous HTTP client for Java and Kotlin.") + url.set("https://square.github.io/okhttp/") + licenses { + license { + name.set("The Apache Software License, Version 2.0") + url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") + distribution.set("repo") + } + } + scm { + connection.set("scm:git:https://github.com/square/okhttp.git") + developerConnection.set("scm:git:ssh://git@github.com/square/okhttp.git") + url.set("https://github.com/square/okhttp") + } + developers { + developer { + name.set("Square, Inc.") + } + } + } + } } } diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 9aa99b866..33d50e0df 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -20,29 +20,9 @@ import org.gradle.api.Project import org.gradle.api.plugins.ExtensionAware import org.gradle.api.tasks.SourceSetContainer import org.gradle.kotlin.dsl.apply -import org.gradle.kotlin.dsl.extra import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.withConvention -fun String.publishedArtifactId(): String? { - return when (this) { - "okhttp-logging-interceptor" -> "logging-interceptor" - "mockwebserver" -> "mockwebserver3" - "mockwebserver-junit4" -> "mockwebserver3-junit4" - "mockwebserver-junit5" -> "mockwebserver3-junit5" - "mockwebserver-deprecated" -> "mockwebserver" - "okcurl", - "okhttp", - "okhttp-bom", - "okhttp-brotli", - "okhttp-dnsoverhttps", - "okhttp-sse", - "okhttp-tls", - "okhttp-urlconnection" -> this - else -> null - } -} - fun Project.applyOsgi(vararg bndProperties: String) { apply(plugin = "biz.aQute.bnd.builder") sourceSets.create("osgi") @@ -59,11 +39,10 @@ fun Project.applyOsgi(vararg bndProperties: String) { */ fun Project.baselineJar(version: String = "3.14.1"): File? { val originalGroup = group - val artifactId = extra["artifactId"] return try { - val jarFile = "$artifactId-${version}.jar" + val jarFile = "$name-$version.jar" group = "virtual_group_for_japicmp" - val dependency = dependencies.create("$originalGroup:$artifactId:$version@jar") + val dependency = dependencies.create("$originalGroup:$name:$version@jar") configurations.detachedConfiguration(dependency).files.find { (it.name == jarFile) } } catch (e: Exception) { null diff --git a/buildSrc/src/main/kotlin/deps.kt b/buildSrc/src/main/kotlin/deps.kt index 86b060eed..8fd736e67 100644 --- a/buildSrc/src/main/kotlin/deps.kt +++ b/buildSrc/src/main/kotlin/deps.kt @@ -29,7 +29,7 @@ object Versions { object Dependencies { const val kotlinPlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" - const val dokkaPlugin = "org.jetbrains.dokka:dokka-gradle-plugin:0.10.1" + const val dokkaPlugin = "org.jetbrains.dokka:dokka-gradle-plugin:1.5.31" const val androidPlugin = "com.android.tools.build:gradle:7.0.2" const val androidJunit5Plugin = "de.mannodermaus.gradle.plugins:android-junit5:1.8.0.0" const val graalPlugin = "gradle.plugin.com.palantir.graal:gradle-graal:0.9.0" @@ -39,6 +39,7 @@ object Dependencies { const val animalsnifferPlugin = "ru.vyarus:gradle-animalsniffer-plugin:1.5.3" const val errorpronePlugin = "net.ltgt.gradle:gradle-errorprone-plugin:2.0.2" const val spotlessPlugin = "com.diffplug.spotless:spotless-plugin-gradle:5.15.0" + const val vanniktechPublishPlugin = "com.vanniktech:gradle-maven-publish-plugin:0.18.0" const val android = "org.robolectric:android-all:12-robolectric-7732740" const val animalSniffer = "org.codehaus.mojo:animal-sniffer-annotations:1.20" diff --git a/mockwebserver-deprecated/build.gradle.kts b/mockwebserver-deprecated/build.gradle.kts index 0470d1f86..4d29e27a6 100644 --- a/mockwebserver-deprecated/build.gradle.kts +++ b/mockwebserver-deprecated/build.gradle.kts @@ -1,10 +1,14 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import me.champeau.gradle.japicmp.JapicmpTask plugins { kotlin("jvm") - id("me.champeau.gradle.japicmp") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") + id("me.champeau.gradle.japicmp") } tasks.jar { @@ -15,7 +19,7 @@ tasks.jar { dependencies { api(project(":okhttp")) - api(project(":mockwebserver")) + api(project(":mockwebserver3")) api(Dependencies.junit) testImplementation(project(":okhttp-testing-support")) @@ -23,13 +27,6 @@ dependencies { testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } -} - tasks.register("japicmp") { dependsOn("jar") oldClasspath = files(project.baselineJar()) @@ -49,3 +46,8 @@ tasks.register("japicmp") { "okhttp3.mockwebserver.QueueDispatcher" ) }.let(tasks.check::dependsOn) + + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} diff --git a/mockwebserver-junit4/build.gradle.kts b/mockwebserver-junit4/build.gradle.kts index 70cac93e9..a24a508e6 100644 --- a/mockwebserver-junit4/build.gradle.kts +++ b/mockwebserver-junit4/build.gradle.kts @@ -1,6 +1,11 @@ +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension + plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") } tasks.jar { @@ -10,15 +15,12 @@ tasks.jar { } dependencies { - api(project(":mockwebserver")) + api(project(":mockwebserver3")) api(Dependencies.junit) testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) } diff --git a/mockwebserver-junit5/build.gradle.kts b/mockwebserver-junit5/build.gradle.kts index 787665e44..90765a83a 100644 --- a/mockwebserver-junit5/build.gradle.kts +++ b/mockwebserver-junit5/build.gradle.kts @@ -1,6 +1,11 @@ +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension + plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") } tasks { @@ -16,7 +21,7 @@ tasks { } dependencies { - api(project(":mockwebserver")) + api(project(":mockwebserver3")) api(Dependencies.junit5Api) compileOnly(Dependencies.animalSniffer) @@ -25,9 +30,6 @@ dependencies { testImplementation(Dependencies.kotlinJunit5) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) } diff --git a/mockwebserver/build.gradle.kts b/mockwebserver/build.gradle.kts index c6b63204a..345ae40b8 100644 --- a/mockwebserver/build.gradle.kts +++ b/mockwebserver/build.gradle.kts @@ -1,5 +1,11 @@ +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension + plugins { kotlin("jvm") + id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") } tasks.jar { @@ -13,14 +19,11 @@ dependencies { testImplementation(project(":okhttp-testing-support")) testImplementation(project(":okhttp-tls")) - testRuntimeOnly(project(":mockwebserver-junit5")) + testRuntimeOnly(project(":mockwebserver3-junit5")) testImplementation(Dependencies.junit) testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) } diff --git a/native-image-tests/build.gradle.kts b/native-image-tests/build.gradle.kts index 9bcd7a565..83bd58674 100644 --- a/native-image-tests/build.gradle.kts +++ b/native-image-tests/build.gradle.kts @@ -19,11 +19,11 @@ dependencies { implementation(project(":okhttp-testing-support")) implementation(project(":okhttp-tls")) implementation(Dependencies.assertj) + implementation(project(":mockwebserver3")) implementation(project(":mockwebserver")) - implementation(project(":mockwebserver-deprecated")) implementation(project(":okhttp-urlconnection")) - implementation(project(":mockwebserver-junit4")) - implementation(project(":mockwebserver-junit5")) + implementation(project(":mockwebserver3-junit4")) + implementation(project(":mockwebserver3-junit5")) implementation(Dependencies.bndResolve) implementation(Dependencies.junit5Api) implementation(Dependencies.junit5JupiterParams) diff --git a/okcurl/build.gradle.kts b/okcurl/build.gradle.kts index 314d28570..dfbb40d91 100644 --- a/okcurl/build.gradle.kts +++ b/okcurl/build.gradle.kts @@ -1,10 +1,15 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import java.nio.charset.StandardCharsets import org.apache.tools.ant.taskdefs.condition.Os plugins { kotlin("jvm") kotlin("kapt") + id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") id("com.palantir.graal") id("com.github.johnrengelman.shadow") } @@ -23,19 +28,9 @@ sourceSets { } } -tasks.register("copyResourcesTemplates") { - from("src/main/resources-templates") - into("$buildDir/generated/resources-templates") - expand("projectVersion" to "${project.version}") - filteringCharset = StandardCharsets.UTF_8.toString() -}.let { - tasks.processResources.dependsOn(it) - tasks.named("sourcesJar").dependsOn(it) -} - dependencies { api(project(":okhttp")) - api(project(":okhttp-logging-interceptor")) + api(project(":logging-interceptor")) implementation(Dependencies.picocli) implementation(Dependencies.guava) @@ -66,3 +61,17 @@ graal { windowsVsVarsPath("C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat") } } + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} + +tasks.register("copyResourcesTemplates") { + from("src/main/resources-templates") + into("$buildDir/generated/resources-templates") + expand("projectVersion" to "${project.version}") + filteringCharset = StandardCharsets.UTF_8.toString() +}.let { + tasks.processResources.dependsOn(it) + tasks.named("javaSourcesJar").dependsOn(it) +} diff --git a/okhttp-bom/build.gradle.kts b/okhttp-bom/build.gradle.kts index ecb8157a5..99d0f26b0 100644 --- a/okhttp-bom/build.gradle.kts +++ b/okhttp-bom/build.gradle.kts @@ -1,14 +1,20 @@ plugins { + id("com.vanniktech.maven.publish.base") id("java-platform") } dependencies { constraints { project.rootProject.subprojects.forEach { subproject -> - val artifactId = subproject.name.publishedArtifactId() - if (artifactId != null && artifactId != "okhttp-bom") { + if (subproject.name != "okhttp-bom") { api(subproject) } } } } + +extensions.configure { + publications.create("maven", MavenPublication::class) { + from(project.components.getByName("javaPlatform")) + } +} diff --git a/okhttp-brotli/build.gradle.kts b/okhttp-brotli/build.gradle.kts index c75473c03..d1a7446e7 100644 --- a/okhttp-brotli/build.gradle.kts +++ b/okhttp-brotli/build.gradle.kts @@ -1,6 +1,11 @@ +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension + plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") } project.applyOsgi( @@ -20,9 +25,6 @@ dependencies { testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) } diff --git a/okhttp-dnsoverhttps/build.gradle.kts b/okhttp-dnsoverhttps/build.gradle.kts index 205a52d06..7ec05e714 100644 --- a/okhttp-dnsoverhttps/build.gradle.kts +++ b/okhttp-dnsoverhttps/build.gradle.kts @@ -1,6 +1,11 @@ +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension + plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") } project.applyOsgi( @@ -14,17 +19,14 @@ dependencies { compileOnly(Dependencies.jsr305) testImplementation(project(":okhttp-testing-support")) - testImplementation(project(":mockwebserver-deprecated")) - testImplementation(project(":mockwebserver-junit5")) + testImplementation(project(":mockwebserver")) + testImplementation(project(":mockwebserver3-junit5")) testImplementation(Dependencies.okioFakeFileSystem) testImplementation(Dependencies.conscrypt) testImplementation(Dependencies.junit) testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) } diff --git a/okhttp-hpacktests/build.gradle.kts b/okhttp-hpacktests/build.gradle.kts index feaff4d58..288d14841 100644 --- a/okhttp-hpacktests/build.gradle.kts +++ b/okhttp-hpacktests/build.gradle.kts @@ -7,7 +7,7 @@ dependencies { testImplementation(Dependencies.moshi) testImplementation(project(":okhttp")) testImplementation(project(":okhttp-testing-support")) - testImplementation(project(":mockwebserver-deprecated")) + testImplementation(project(":mockwebserver")) testImplementation(Dependencies.junit) testImplementation(Dependencies.assertj) } diff --git a/okhttp-logging-interceptor/build.gradle.kts b/okhttp-logging-interceptor/build.gradle.kts index 8271b8bd8..024153a8d 100644 --- a/okhttp-logging-interceptor/build.gradle.kts +++ b/okhttp-logging-interceptor/build.gradle.kts @@ -1,9 +1,13 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import me.champeau.gradle.japicmp.JapicmpTask plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") id("me.champeau.gradle.japicmp") } @@ -19,20 +23,13 @@ dependencies { testCompileOnly(Dependencies.jsr305) testImplementation(Dependencies.junit) - testImplementation(project(":mockwebserver")) - testImplementation(project(":mockwebserver-junit5")) + testImplementation(project(":mockwebserver3")) + testImplementation(project(":mockwebserver3-junit5")) testImplementation(project(":okhttp-testing-support")) testImplementation(project(":okhttp-tls")) testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } -} - tasks.register("japicmp") { dependsOn("jar") oldClasspath = files(project.baselineJar()) @@ -43,3 +40,7 @@ tasks.register("japicmp") { isIgnoreMissingClasses = true isIncludeSynthetic = true }.let(tasks.check::dependsOn) + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} diff --git a/okhttp-sse/build.gradle.kts b/okhttp-sse/build.gradle.kts index 0ba811e54..65059cc6b 100644 --- a/okhttp-sse/build.gradle.kts +++ b/okhttp-sse/build.gradle.kts @@ -1,9 +1,13 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import me.champeau.gradle.japicmp.JapicmpTask plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") id("me.champeau.gradle.japicmp") } @@ -18,20 +22,13 @@ dependencies { compileOnly(Dependencies.jsr305) testImplementation(project(":okhttp-testing-support")) - testImplementation(project(":mockwebserver")) - testImplementation(project(":mockwebserver-junit5")) + testImplementation(project(":mockwebserver3")) + testImplementation(project(":mockwebserver3-junit5")) testImplementation(Dependencies.junit) testImplementation(Dependencies.assertj) testCompileOnly(Dependencies.jsr305) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } -} - tasks.register("japicmp") { dependsOn("jar") oldClasspath = files(project.baselineJar()) @@ -45,3 +42,7 @@ tasks.register("japicmp") { "okhttp3.internal.sse" ) }.let(tasks.check::dependsOn) + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} diff --git a/okhttp-tls/build.gradle.kts b/okhttp-tls/build.gradle.kts index 046d7b916..aef64e9d4 100644 --- a/okhttp-tls/build.gradle.kts +++ b/okhttp-tls/build.gradle.kts @@ -1,11 +1,15 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import me.champeau.gradle.japicmp.JapicmpTask plugins { kotlin("jvm") id("org.jetbrains.dokka") - id("ru.vyarus.animalsniffer") + id("com.vanniktech.maven.publish.base") id("me.champeau.gradle.japicmp") + id("ru.vyarus.animalsniffer") } project.applyOsgi( @@ -21,18 +25,11 @@ dependencies { compileOnly(Dependencies.animalSniffer) testImplementation(project(":okhttp-testing-support")) - testImplementation(project(":mockwebserver-junit5")) + testImplementation(project(":mockwebserver3-junit5")) testImplementation(Dependencies.junit) testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } -} - animalsniffer { // InsecureExtendedTrustManager (API 24+) ignore = listOf("javax.net.ssl.X509ExtendedTrustManager") @@ -51,3 +48,7 @@ tasks.register("japicmp") { "okhttp3.tls.internal" ) }.let(tasks.check::dependsOn) + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} diff --git a/okhttp-urlconnection/build.gradle.kts b/okhttp-urlconnection/build.gradle.kts index 2d70bff35..3a9defc07 100644 --- a/okhttp-urlconnection/build.gradle.kts +++ b/okhttp-urlconnection/build.gradle.kts @@ -1,9 +1,13 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import me.champeau.gradle.japicmp.JapicmpTask plugins { kotlin("jvm") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") id("me.champeau.gradle.japicmp") } @@ -23,18 +27,11 @@ dependencies { testImplementation(project(":okhttp-testing-support")) testImplementation(project(":okhttp-tls")) - testImplementation(project(":mockwebserver-deprecated")) + testImplementation(project(":mockwebserver")) testImplementation(Dependencies.junit) testImplementation(Dependencies.assertj) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } -} - tasks.register("japicmp") { dependsOn("jar") oldClasspath = files(project.baselineJar()) @@ -45,3 +42,8 @@ tasks.register("japicmp") { isIgnoreMissingClasses = true isIncludeSynthetic = true }.let(tasks.check::dependsOn) + + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} diff --git a/okhttp/build.gradle.kts b/okhttp/build.gradle.kts index 4bb9563ec..c2cf2b69a 100644 --- a/okhttp/build.gradle.kts +++ b/okhttp/build.gradle.kts @@ -1,11 +1,15 @@ import com.android.build.gradle.internal.tasks.factory.dependsOn +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.KotlinJvm +import com.vanniktech.maven.publish.MavenPublishBaseExtension import java.nio.charset.StandardCharsets import me.champeau.gradle.japicmp.JapicmpTask plugins { kotlin("jvm") - id("me.champeau.gradle.japicmp") id("org.jetbrains.dokka") + id("com.vanniktech.maven.publish.base") + id("me.champeau.gradle.japicmp") } project.applyOsgi( @@ -56,16 +60,6 @@ normalization { } } -tasks.register("copyJavaTemplates") { - from("src/main/java-templates") - into("$buildDir/generated/sources/java-templates/java/main") - expand("projectVersion" to project.version) - filteringCharset = StandardCharsets.UTF_8.toString() -}.let { - tasks.compileKotlin.dependsOn(it) - tasks.named("sourcesJar").dependsOn(it) -} - // Expose OSGi jars to the test environment. configurations { create("osgiTestDeploy") @@ -95,11 +89,11 @@ dependencies { testImplementation(project(":okhttp-testing-support")) testImplementation(project(":okhttp-tls")) testImplementation(project(":okhttp-urlconnection")) + testImplementation(project(":mockwebserver3")) + testImplementation(project(":mockwebserver3-junit4")) + testImplementation(project(":mockwebserver3-junit5")) testImplementation(project(":mockwebserver")) - testImplementation(project(":mockwebserver-junit4")) - testImplementation(project(":mockwebserver-junit5")) - testImplementation(project(":mockwebserver-deprecated")) - testImplementation(project(":okhttp-logging-interceptor")) + testImplementation(project(":logging-interceptor")) testImplementation(project(":okhttp-brotli")) testImplementation(project(":okhttp-dnsoverhttps")) testImplementation(project(":okhttp-sse")) @@ -116,13 +110,6 @@ dependencies { testCompileOnly(Dependencies.jsr305) } -afterEvaluate { - tasks.dokka { - outputDirectory = "$rootDir/docs/4.x" - outputFormat = "gfm" - } -} - tasks.register("japicmp") { dependsOn("jar") oldClasspath = files(project.baselineJar()) @@ -185,3 +172,18 @@ tasks.register("japicmp") { "okhttp3.Request\$Builder#delete()", ) }.let(tasks.check::dependsOn) + +configure { + configure(KotlinJvm(javadocJar = JavadocJar.Dokka("dokkaGfm"))) +} + +tasks.register("copyJavaTemplates") { + from("src/main/java-templates") + into("$buildDir/generated/sources/java-templates/java/main") + expand("projectVersion" to project.version) + filteringCharset = StandardCharsets.UTF_8.toString() +}.let { + tasks.compileKotlin.dependsOn(it) + tasks.named("javaSourcesJar").dependsOn(it) +} + diff --git a/samples/compare/build.gradle.kts b/samples/compare/build.gradle.kts index f4f9613df..b0b6b16f3 100644 --- a/samples/compare/build.gradle.kts +++ b/samples/compare/build.gradle.kts @@ -4,8 +4,8 @@ plugins { dependencies { testImplementation(project(":okhttp")) - testImplementation(project(":mockwebserver")) - testRuntimeOnly(project(":mockwebserver-junit5")) + testImplementation(project(":mockwebserver3")) + testRuntimeOnly(project(":mockwebserver3-junit5")) testImplementation(project(":okhttp-tls")) testImplementation(project(":okhttp-testing-support")) testImplementation(Dependencies.httpclient5) diff --git a/samples/guide/build.gradle.kts b/samples/guide/build.gradle.kts index ff4196792..2a8bf324c 100644 --- a/samples/guide/build.gradle.kts +++ b/samples/guide/build.gradle.kts @@ -5,7 +5,7 @@ plugins { dependencies { implementation(project(":okhttp")) - implementation(project(":mockwebserver-deprecated")) + implementation(project(":mockwebserver")) implementation(project(":okhttp-testing-support")) implementation(project(":okhttp-tls")) implementation(Dependencies.animalSniffer) diff --git a/samples/slack/build.gradle.kts b/samples/slack/build.gradle.kts index 84a0f8af8..a271e7013 100644 --- a/samples/slack/build.gradle.kts +++ b/samples/slack/build.gradle.kts @@ -3,6 +3,6 @@ plugins { } dependencies { - implementation(project(":mockwebserver-deprecated")) + implementation(project(":mockwebserver")) implementation(Dependencies.moshi) } diff --git a/samples/static-server/build.gradle.kts b/samples/static-server/build.gradle.kts index 10f9c02f9..2e8316905 100644 --- a/samples/static-server/build.gradle.kts +++ b/samples/static-server/build.gradle.kts @@ -14,7 +14,7 @@ tasks.jar { } dependencies { - implementation(project(":mockwebserver-deprecated")) + implementation(project(":mockwebserver")) } tasks.shadowJar { diff --git a/samples/unixdomainsockets/build.gradle.kts b/samples/unixdomainsockets/build.gradle.kts index 48a152a08..2207ed802 100644 --- a/samples/unixdomainsockets/build.gradle.kts +++ b/samples/unixdomainsockets/build.gradle.kts @@ -4,6 +4,6 @@ plugins { dependencies { implementation(project(":okhttp")) - implementation(project(":mockwebserver-deprecated")) + implementation(project(":mockwebserver")) implementation(Dependencies.jnrUnixsocket) } diff --git a/settings.gradle.kts b/settings.gradle.kts index f48a2221e..d9f559b3f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,9 +1,13 @@ rootProject.name = "okhttp-parent" include(":mockwebserver") +project(":mockwebserver").name = "mockwebserver3" include(":mockwebserver-deprecated") +project(":mockwebserver-deprecated").name = "mockwebserver" include(":mockwebserver-junit4") +project(":mockwebserver-junit4").name = "mockwebserver3-junit4" include(":mockwebserver-junit5") +project(":mockwebserver-junit5").name = "mockwebserver3-junit5" val androidBuild: String? by settings val graalBuild: String? by settings @@ -24,6 +28,7 @@ include(":okhttp-brotli") include(":okhttp-dnsoverhttps") include(":okhttp-hpacktests") include(":okhttp-logging-interceptor") +project(":okhttp-logging-interceptor").name = "logging-interceptor" include(":okhttp-sse") include(":okhttp-testing-support") include(":okhttp-tls")