renovate-bot opened a new pull request, #6437: URL: https://github.com/apache/fineract/pull/6437
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [com.squareup.okhttp3:okhttp-bom](https://lysine.dev/okhttp/) ([source](https://redirect.github.com/lysine-dev/okhttp)) | `4.12.0` → `5.5.0` |  |  | --- ### Release Notes <details> <summary>lysine-dev/okhttp (com.squareup.okhttp3:okhttp-bom)</summary> ### [`v5.5.0`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-550) *2026-08-16* This release introduces **opt-in** support for \[Encrypted Client Hello (ECH)]. This new feature improves user privacy by encrypting domain names in transit. With regular TLS, your coffee shop’s Wi-Fi router can see that you’re visiting *wikipedia.com*, but it cannot see which page you’re looking at. With ECH, the router observes only the IP address. This additional privacy is most effective on sites hosted by big CDNs because the IP address doesn’t imply a particular website. This requires ECH support in the platform’s TLS stack. Today this is only Android 17 (API 37, released June 2026). When other TLS stacks add ECH support, we'll integrate them. ECH took a lot of work to implement because the encryption keys are published over DNS in the \[HTTPS resource record], and we needed to write new code to fetch these records. This release includes a major update to OkHttp’s DNS API: it now supports multiple resource record types (not just IP addresses!), asynchronous streaming results, and in-memory caching. To opt in, you can use `DnsOverHttps`: ```kotlin // DnsOverHttps itself uses OkHttpClient. Build both clients upon the // same bootstrap client so they share a connection pool and dispatcher. val bootstrapClient = OkHttpClient() // This sample uses Cloudflare's 1.1.1.1 DnsOverHttps service. val client = bootstrapClient.newBuilder() .dns(DnsOverHttps.Builder() .client(bootstrapClient) .url("https://1.1.1.1/dns-query".toHttpUrl()) .build()) .build() ``` You could also opt in with our new `AndroidDns` API. Unfortunately, the privacy benefits of ECH are deficient because its DNS queries are not encrypted by default. ```kotlin // AndroidDns fetches the HTTPS DNS resource records necessary for ECH. val client = OkHttpClient.Builder() .dns(AndroidDns()) .build() ``` - New: OkHttp artifacts is now signed with our \[new signing key]. This project and three sibling projects (\[Retrofit], \[Okio], and \[SQLDelight]) recently joined \[the Commonhaus Foundation]. - Fix: MockWebServer’s `@StartStop` annotation now supports `@Nested` JUnit 5 tests. - Fix: Our default TLS hostname verifier now reject hosts that fail IP canonicalization. - Fix: Closing a multipart part's sink no longer closes the entire request body. - Fix: Flush HTTP/1 request bodies before detaching the timeout. We had a bug where timeouts weren’t applied correctly. - Fix: Follow \[RFC 1008]'s requirements for HTTP QUERY redirects. - Fix: Fall back to no proxy when the system proxy selector throws. Previously this would cause the HTTP call to crash. - Upgrade: \[Okio 3.18.1]\[okio\_3\_18\_1]. ### [`v5.4.0`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-540) *2026-06-08* - New: Add superpowers to interceptors. Interceptors can now override anything settable on `OkHttpClient.Builder`, such as the cache, connection pool, socket factory, and DNS. We expect this will allow most users to use interceptors everywhere, insted of mixing and matching interceptors with custom `Call.Factory` wrappers. - Fix: Limit each HTTP/2 response to 256 KiB of total headers. - Upgrade: \[kotlinx.coroutines 1.11.0]\[coroutines\_1\_11\_0]. This is used by the optional `okhttp-coroutines` artifact. - Upgrade: \[GraalVM 25.0.3]\[graalvm\_25]. - Upgrade: \[Okio 3.17.0]\[okio\_3\_17\_0]. ### [`v5.3.2`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-532) *2025-11-18* - Fix: Don't delay triggering timeouts. In Okio 3.16.0 we introduced a regression that caused timeouts to fire later than they were supposed to. - Upgrade: \[Okio 3.16.4]\[okio\_3\_16\_4]. ### [`v5.3.1`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-531) *2025-11-16* This release is the same as 5.3.0. Okio 3.16.3 didn't have a necessary fix! - Upgrade: \[Okio 3.16.3]\[okio\_3\_16\_3]. ### [`v5.3.0`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-530) *2025-10-30* - New: Add tags to `Call`, including computable tags. Use this to attach application-specific metadata to a `Call` in an `EventListener` or `Interceptor`. The tag can be read in any other `EventListener` or `Interceptor`. ```kotlin override fun intercept(chain: Interceptor.Chain): Response { chain.call().tag(MyAnalyticsTag::class) { MyAnalyticsTag(...) } return chain.proceed(chain.request()) } ``` - New: Support request bodies on HTTP/1.1 connection upgrades. - New: `EventListener.plus()` makes it easier to observe events in multiple listeners. - Fix: Don't spam logs with *‘Method isLoggable in android.util.Log not mocked.’* when using OkHttp in Robolectric and Paparazzi tests. - Upgrade: \[Kotlin 2.2.21]\[kotlin\_2\_2\_21]. - Upgrade: \[Okio 3.16.2]\[okio\_3\_16\_2]. - Upgrade: \[ZSTD-KMP 0.4.0]\[zstd\_kmp\_0\_4\_0]. This update fixes a bug that caused APKs to fail \[16 KB ELF alignment checks]\[elf\_alignment]. ### [`v5.2.3`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-523) *2025-11-18* - Fix: Don't delay triggering timeouts. In Okio 3.16.0 we introduced a regression that caused timeouts to fire later than they were supposed to. - Upgrade: \[Okio 3.16.4]\[okio\_3\_16\_4]. ### [`v5.2.2`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-522) *2025-11-16* This release is the same as 5.2.1. Okio 3.16.3 didn't have a necessary fix! - Upgrade: \[Okio 3.16.3]\[okio\_3\_16\_3]. ### [`v5.2.1`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-521) *2025-10-09* - Fix: Don't crash when calling `Socket.shutdownOutput()` or `shutdownInput()` on an `SSLSocket` on Android API 21 through 23. This method throws an `UnsupportedOperationException`, so we now catch that and close the underlying stream instead. - Upgrade: \[Okio 3.16.1]\[okio\_3\_16\_1]. ### [`v5.2.0`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-520) *2025-10-07* - New: Support \[HTTP 101] responses with `Response.socket`. This mechanism is only supported on HTTP/1.1. We also reimplemented our websocket client to use this new mechanism. - New: The `okhttp-zstd` module negotiates \[Zstandard (zstd)]\[zstd] compression with servers that support it. It integrates a new (unstable) \[ZSTD-KMP] library, also from Square. Enable it like this: ```kotlin val client = OkHttpClient.Builder() .addInterceptor(CompressionInterceptor(Zstd, Gzip)) .build() ``` - New: Support the `QUERY` HTTP method. You will need to set the `Request.cacheUrlOverride` property to cache calls made with this method. The `RequestBody.sha256()` may be helpful here; use it to compose a cache URL from the query body. - New: Publish events when calls must wait to execute. `EventListener.dispatcherQueueStart()` is invoked when a call starts waiting, and `dispatcherQueueEnd()` is invoked when it's done. - New: `Request.toCurl()` returns a copy-pasteable \[curl] command consistent with Chrome’s and Firefox’s ‘copy as cURL’ features. - New: Support \[JPMS]. We replaced our `Automatic-Module-Name` metadata with proper `module-info.java` files. - Fix: Recover gracefully when worker threads are interrupted. When we introduced fast fallback in OkHttp 5.0, we started using background threads while connecting. Sadly that code didn't handle interruptions well. This is now fixed. - Upgrade: \[Kotlin 2.2.20]\[kotlin\_2\_2\_20]. - Upgrade: \[Okio 3.16.0]\[okio\_3\_16\_0]. ### [`v5.1.0`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-510) *2025-07-07* - New: `Response.peekTrailers()`. When we changed `Response.trailers()` to block instead of throwing in 5.0.0, we inadvertently removed the ability for callers to peek the trailers (by catching the `IllegalStateException` if they weren't available). This new API restores that capability. - Fix: Don't crash on `trailers()` if the response doesn't have a body. We broke \[Retrofit] users who read the trailers on the `raw()` OkHttp response, after its body was decoded. ### [`v5.0.0`](https://redirect.github.com/lysine-dev/okhttp/blob/HEAD/CHANGELOG.md#Version-500) *2025-07-02* This is our first stable release of OkHttp since 2023. Here's the highlights if you're upgrading from OkHttp 4.x: **OkHttp is now packaged as separate JVM and Android artifacts.** This allows us to offer platform-specific features and optimizations. If your build system handles \[Gradle module metadata], this change should be automatic. **MockWebServer has a new coordinate and package name.** We didn’t like that our old artifact depends on JUnit 4 so the new one doesn’t. It also has a better API built on immutable values. (We intend to continue publishing the old `okhttp3.mockwebserver` artifact so there’s no urgency to migrate.) | Coordinate | Package Name | Description | | :----------------------------------------------- | :-------------------- | :-------------------------------- | | com.squareup.okhttp3:mockwebserver3:5.0.0 | mockwebserver3 | Core module. No JUnit dependency! | | com.squareup.okhttp3:mockwebserver3-junit4:5.0.0 | mockwebserver3.junit4 | Optional JUnit 4 integration. | | com.squareup.okhttp3:mockwebserver3-junit5:5.0.0 | mockwebserver3.junit5 | Optional JUnit 5 integration. | | com.squareup.okhttp3:mockwebserver:5.0.0 | okhttp3.mockwebserver | Obsolete. Depends on JUnit 4. | **OkHttp now supports Happy Eyeballs (\[RFC 8305]) for IPv4+IPv6 networks.** It attempts both IPv6 and IPv4 connections concurrently, keeping whichever connects first. **We’ve improved our Kotlin APIs.** You can skip the builder: ```kotlin val request = Request( url = "https://cash.app/".toHttpUrl(), ) ``` **OkHttp now supports \[GraalVM].** Here’s what has changed since 5.0.0-alpha.17: - Upgrade: \[Okio 3.15.0]\[okio\_3\_15\_0]. - Upgrade: \[Kotlin 2.2.0]\[kotlin\_2\_2\_0]. - Fix: Don't crash with a `NoSuchMethodError` when using OkHttp with the Sentry SDK. - Fix: Retain the query data in the old `okhttp3.mockwebserver.RecordedRequest.path` property. We inadvertently changed this behavior when we introduced the `mockwebserver3` API. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/apache/fineract). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=--> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
