diff --git a/firebase-functions/CHANGELOG.md b/firebase-functions/CHANGELOG.md index 829bf9a431c..8084fc6c549 100644 --- a/firebase-functions/CHANGELOG.md +++ b/firebase-functions/CHANGELOG.md @@ -1,5 +1,10 @@ # Unreleased +- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends + on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small + exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more + details. + # 22.0.1 - [changed] Bumped internal dependencies. diff --git a/firebase-functions/gradle.properties b/firebase-functions/gradle.properties index ad317096e94..4d98af6827e 100644 --- a/firebase-functions/gradle.properties +++ b/firebase-functions/gradle.properties @@ -1,3 +1,3 @@ -version=22.0.2 +version=22.1.0 latestReleasedVersion=22.0.1 android.enableUnitTestBinaryResources=true diff --git a/firebase-functions/src/main/java/com/google/firebase/functions/FirebaseFunctions.kt b/firebase-functions/src/main/java/com/google/firebase/functions/FirebaseFunctions.kt index 8839763c4a3..b747456aa75 100644 --- a/firebase-functions/src/main/java/com/google/firebase/functions/FirebaseFunctions.kt +++ b/firebase-functions/src/main/java/com/google/firebase/functions/FirebaseFunctions.kt @@ -38,10 +38,10 @@ import java.util.concurrent.Executor import javax.inject.Named import okhttp3.Call import okhttp3.Callback -import okhttp3.MediaType +import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.OkHttpClient import okhttp3.Request -import okhttp3.RequestBody +import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import org.json.JSONException import org.json.JSONObject @@ -87,7 +87,7 @@ internal constructor( try { URL(regionOrCustomDomain) false - } catch (malformedURLException: MalformedURLException) { + } catch (_: MalformedURLException) { true } if (isRegion) { @@ -227,8 +227,8 @@ internal constructor( val encoded = serializer.encode(data) body["data"] = encoded val bodyJSON = JSONObject(body) - val contentType = MediaType.parse("application/json") - val requestBody = RequestBody.create(contentType, bodyJSON.toString()) + val contentType = "application/json".toMediaTypeOrNull() + val requestBody = bodyJSON.toString().toRequestBody(contentType) var request = Request.Builder().url(url).post(requestBody) if (context!!.authToken != null) { request = request.header("Authorization", "Bearer " + context.authToken) @@ -268,8 +268,8 @@ internal constructor( @Throws(IOException::class) override fun onResponse(ignored: Call, response: Response) { - val code = fromHttpStatus(response.code()) - val bodyAsString = response.body()!!.string() + val code = fromHttpStatus(response.code) + val bodyAsString = response.body!!.string() val exception = fromResponse(code, bodyAsString, serializer) if (exception != null) { tcs.setException(exception) diff --git a/firebase-functions/src/main/java/com/google/firebase/functions/PublisherStream.kt b/firebase-functions/src/main/java/com/google/firebase/functions/PublisherStream.kt index d853dfbbb7b..ad5d9f84a26 100644 --- a/firebase-functions/src/main/java/com/google/firebase/functions/PublisherStream.kt +++ b/firebase-functions/src/main/java/com/google/firebase/functions/PublisherStream.kt @@ -28,7 +28,7 @@ import java.util.concurrent.Executor import java.util.concurrent.atomic.AtomicLong import okhttp3.Call import okhttp3.Callback -import okhttp3.MediaType +import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody @@ -133,7 +133,7 @@ internal class PublisherStream( val configuredClient = options.apply(client) val requestBody = RequestBody.create( - MediaType.parse("application/json"), + "application/json".toMediaTypeOrNull(), JSONObject(mapOf("data" to serializer.encode(data))).toString() ) val request = @@ -167,7 +167,7 @@ internal class PublisherStream( override fun onResponse(call: Call, response: Response) { validateResponse(response) - val bodyStream = response.body()?.byteStream() + val bodyStream = response.body?.byteStream() if (bodyStream != null) { processSSEStream(bodyStream) } else { @@ -309,21 +309,21 @@ internal class PublisherStream( val errorMessage: String if ( - response.code() == 404 && - MediaType.parse(response.header("Content-Type") ?: "")?.subtype() == "html" + response.code == 404 && + (response.header("Content-Type") ?: "").toMediaTypeOrNull()?.subtype == "html" ) { - errorMessage = """URL not found. Raw response: ${response.body()?.string()}""".trimMargin() + errorMessage = """URL not found. Raw response: ${response.body?.string()}""".trimMargin() notifyError( FirebaseFunctionsException( errorMessage, - FirebaseFunctionsException.Code.fromHttpStatus(response.code()), + FirebaseFunctionsException.Code.fromHttpStatus(response.code), null ) ) return } - val text = response.body()?.string() ?: "" + val text = response.body?.string() ?: "" val error: Any? try { val json = JSONObject(text) diff --git a/firebase-perf/CHANGELOG.md b/firebase-perf/CHANGELOG.md index b859ec94029..71fb3dce42d 100644 --- a/firebase-perf/CHANGELOG.md +++ b/firebase-perf/CHANGELOG.md @@ -1,5 +1,10 @@ # Unreleased +- [changed] Bumped dependency on OkHTTP to version 4.12.0 from version 3.12.13. If your app depends + on OkHTTP version 3.x the change is both binary- and Java source-compatible, with a few small + exceptions. See https://square.github.io/okhttp/changelogs/upgrading_to_okhttp_4/ for more + details. + # 22.0.2 - [changed] Bumped internal dependencies. diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f4885496b15..5e1762ea048 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -166,7 +166,7 @@ maven-resolver-provider = { module = "org.apache.maven:maven-resolver-provider", maven-resolver-transport-file = { module = "org.apache.maven.resolver:maven-resolver-transport-file", version.ref = "mavenResolverApi" } maven-resolver-transport-http = { module = "org.apache.maven.resolver:maven-resolver-transport-http", version.ref = "mavenResolverApi" } maven-resolver-util = { module = "org.apache.maven.resolver:maven-resolver-util", version.ref = "mavenResolverApi" } -okhttp = { module = "com.squareup.okhttp3:okhttp", version = "3.12.13" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version = "4.12.0" } org-json = { module = "org.json:json", version = "20240303" } play-services-cloud-messaging = { module = "com.google.android.gms:play-services-cloud-messaging", version.ref = "playServicesCloudMessaging" } play-services-stats = { module = "com.google.android.gms:play-services-stats", version.ref = "playServicesStats" } @@ -222,13 +222,13 @@ wiremock-standalone = { module = "com.github.tomakehurst:wiremock-standalone", v kotest = ["kotest-runner", "kotest-assertions", "kotest-property", "kotest-property-arbs"] playservices = ["playservices-base", "playservices-basement", "playservices-tasks"] maven-resolver = [ - "maven-resolver-api", - "maven-resolver-connector-basic", - "maven-resolver-impl", - "maven-resolver-provider", - "maven-resolver-transport-file", - "maven-resolver-transport-http", - "maven-resolver-util" + "maven-resolver-api", + "maven-resolver-connector-basic", + "maven-resolver-impl", + "maven-resolver-provider", + "maven-resolver-transport-file", + "maven-resolver-transport-http", + "maven-resolver-util" ] [plugins]