Created
January 31, 2020 18:53
-
-
Save martinbonnin/3499f3654cf801a4a72d3208400da8d8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import groovy.text.SimpleTemplateEngine | |
apply(plugin = "me.champeau.gradle.japicmp") | |
tasks.named("jar") { | |
this as org.gradle.jvm.tasks.Jar | |
manifest { | |
attributes(mapOf("Automatic-Module-Name" to "okhttp3")) | |
} | |
} | |
sourceSets { | |
main.get().java.srcDir("$buildDir/generated/sources/java-templates/java/main") | |
} | |
tasks.named("compileKotlin") { | |
dependsOn(tasks.named("copyJavaTemplates")) | |
} | |
tasks.register("copyJavaTemplates", Copy::class.java) { | |
from("src/main/java-templates") | |
into("$buildDir/generated/sources/java-templates/java/main") | |
expand(mutableMapOf("projectVersion" to "${project.version}")) | |
filteringCharset = "UTF-8" | |
} | |
dependencies { | |
val extra = rootProject.extra | |
api((extra["deps"] as Map<String, String>)["okio"]!!) | |
api((extra["deps"] as Map<String, String>)["kotlinStdlib"]!!) | |
compileOnly((extra["deps"] as Map<String, String>)["android"]!!) | |
compileOnly((extra["deps"] as Map<String, String>)["conscrypt"]!!) | |
compileOnly((extra["deps"] as Map<String, String>)["openjsse"]!!) | |
compileOnly((extra["deps"] as Map<String, String>)["jsr305"]!!) | |
compileOnly((extra["deps"] as Map<String, String>)["animalSniffer"]!!) | |
testImplementation(project(":okhttp-testing-support")) | |
testImplementation(project(":okhttp-tls")) | |
testImplementation(project(":okhttp-urlconnection")) | |
testImplementation(project(":mockwebserver")) | |
testImplementation(project(":okhttp-logging-interceptor")) | |
testImplementation((extra["deps"] as Map<String, String>)["conscrypt"]!!) | |
testImplementation((extra["deps"] as Map<String, String>)["junit"]!!) | |
testImplementation((extra["deps"] as Map<String, String>)["assertj"]!!) | |
testImplementation((extra["deps"] as Map<String, String>)["openjsse"]!!) | |
testCompileOnly((extra["deps"] as Map<String, String>)["jsr305"]!!) | |
} | |
project.afterEvaluate { | |
tasks.named("dokka") { | |
this as org.jetbrains.dokka.gradle.DokkaTask | |
outputDirectory = "$rootDir/docs/4.x" | |
outputFormat = "gfm" | |
} | |
} | |
animalsniffer { | |
ignore = listOf("javax.net.ssl.SSLParameters", "javax.net.ssl.SSLSocket") | |
} | |
val japicmp = tasks.register("japicmp", me.champeau.gradle.japicmp.JapicmpTask::class.java) { | |
val jarTask = tasks.named("jar").get() as org.gradle.jvm.tasks.Jar | |
dependsOn(jarTask) | |
val extra = rootProject.extra | |
val baselineJar = extra["baselineJar"] as groovy.lang.Closure<groovy.lang.GString> | |
val baselineVersion = extra["baselineVersion"] | |
oldClasspath = files(baselineJar.call(project, baselineVersion)) | |
newClasspath = files(jarTask.archivePath) | |
setOnlyBinaryIncompatibleModified(true) | |
setFailOnModification(true) | |
txtOutputFile = file("$buildDir/reports/japi.txt") | |
setIgnoreMissingClasses(true) | |
setIncludeSynthetic(true) | |
packageExcludes = listOf( | |
"okhttp3.internal", | |
"okhttp3.internal.annotations", | |
"okhttp3.internal.cache", | |
"okhttp3.internal.cache2", | |
"okhttp3.internal.connection", | |
"okhttp3.internal.http", | |
"okhttp3.internal.http2", | |
"okhttp3.internal.io", | |
"okhttp3.internal.platform", | |
"okhttp3.internal.proxy", | |
"okhttp3.internal.publicsuffix", | |
"okhttp3.internal.tls", | |
"okhttp3.internal.ws" | |
) | |
classExcludes = listOf( | |
// Package-private in 3.x, internal in 4.0.0: | |
"okhttp3.Cache\$CacheResponseBody$1", | |
"okhttp3.RealCall\$AsyncCall" | |
) | |
methodExcludes = listOf( | |
// Became "final" despite a non-final enclosing class in 4.0.0: | |
"okhttp3.OkHttpClient#authenticator()", | |
"okhttp3.OkHttpClient#cache()", | |
"okhttp3.OkHttpClient#callTimeoutMillis()", | |
"okhttp3.OkHttpClient#certificatePinner()", | |
"okhttp3.OkHttpClient#connectionPool()", | |
"okhttp3.OkHttpClient#connectionSpecs()", | |
"okhttp3.OkHttpClient#connectTimeoutMillis()", | |
"okhttp3.OkHttpClient#cookieJar()", | |
"okhttp3.OkHttpClient#dispatcher()", | |
"okhttp3.OkHttpClient#dns()", | |
"okhttp3.OkHttpClient#eventListenerFactory()", | |
"okhttp3.OkHttpClient#followRedirects()", | |
"okhttp3.OkHttpClient#followSslRedirects()", | |
"okhttp3.OkHttpClient#hostnameVerifier()", | |
"okhttp3.OkHttpClient#interceptors()", | |
"okhttp3.OkHttpClient#networkInterceptors()", | |
"okhttp3.OkHttpClient#pingIntervalMillis()", | |
"okhttp3.OkHttpClient#protocols()", | |
"okhttp3.OkHttpClient#proxy()", | |
"okhttp3.OkHttpClient#proxyAuthenticator()", | |
"okhttp3.OkHttpClient#proxySelector()", | |
"okhttp3.OkHttpClient#readTimeoutMillis()", | |
"okhttp3.OkHttpClient#retryOnConnectionFailure()", | |
"okhttp3.OkHttpClient#socketFactory()", | |
"okhttp3.OkHttpClient#sslSocketFactory()", | |
"okhttp3.OkHttpClient#writeTimeoutMillis()" | |
) | |
} | |
tasks.named("check") { | |
dependsOn(japicmp) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment