Skip to content

Replace OkHTTP with native JDK HttpClient in javalin-testtools#2461

Merged
tipsy merged 6 commits into
masterfrom
copilot/fix-2460
Sep 21, 2025
Merged

Replace OkHTTP with native JDK HttpClient in javalin-testtools#2461
tipsy merged 6 commits into
masterfrom
copilot/fix-2460

Conversation

Copilot AI commented Sep 21, 2025

Copy link
Copy Markdown
Contributor
  • Explore repository structure and understand current OkHTTP usage
  • Identify components that need to be changed:
    • HttpClient.kt - Main class using OkHTTP Request/Response/OkHttpClient
    • TestTool.kt - Uses OkHttpClient for configuration and cookie handling
    • pom.xml - Remove OkHTTP dependency
  • Run existing tests to confirm current functionality works (28 tests passing)
  • Replace OkHTTP Request/Response with JDK HttpRequest/HttpResponse
  • Replace OkHttpClient with native java.net.http.HttpClient
  • Update cookie handling to use native CookieHandler
  • Remove OkHTTP dependency from pom.xml
  • Update imports and method signatures
  • Ensure API compatibility is maintained for existing test code
  • Run tests to verify all functionality still works (28 tests passing)
  • Validate with basic Javalin server functionality
  • Full clean build verification successful
  • Final comprehensive test pass (28/28 tests passing)
  • NEW: Add comprehensive API coverage tests for both Java and Kotlin (36 tests total)
  • NEW: Clean up test code - remove fully qualified class names and reduce line count
  • NEW: Remove all remaining fully qualified class names from main code

COMPLETE - Issue Resolved + Enhanced Test Coverage + Complete Code Cleanup

Final Code Cleanup Applied:

  • Removed remaining fully qualified class names in HttpClient.kt:
    • java.net.URLEncoder.encode → Added URLEncoder import and used URLEncoder.encode
    • java.net.http.HttpHeaders → Added JdkHttpHeaders import alias and used JdkHttpHeaders
  • All fully qualified Java class names eliminated: No more java.* qualified names anywhere in codebase
  • Proper import conventions: All imports follow standard Java/Kotlin conventions with aliases where needed

Complete Test Coverage:

  • ✅ Response headers access via headers().get() method
  • ✅ Empty/null response body edge cases
  • ✅ Complex request building with multiple custom headers
  • ✅ Non-JSON request bodies with custom Content-Type headers
  • ✅ Direct HttpRequest.BodyPublishers usage for advanced scenarios
  • ✅ Both Java method syntax and Kotlin property syntax testing

All Tests Pass: 36/36 tests passing ✅

The codebase now follows clean import conventions throughout, with no fully qualified class names remaining. The native JDK HttpClient wrapper implementation maintains complete API compatibility while providing comprehensive test coverage.

Fixes #2460.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits September 21, 2025 13:27
Copilot AI changed the title [WIP] Replace OkHTTP in JavalinTest with native JDK client Replace OkHTTP with native JDK HttpClient in javalin-testtools Sep 21, 2025
Copilot AI requested a review from tipsy September 21, 2025 13:30
@tipsy

tipsy commented Sep 21, 2025

Copy link
Copy Markdown
Member

@copilot could you also make sure that both Kotlin and Java tests cover the full API? If you find that there are some tests missing that you think should be there, you can add them, but no more than 4 extra tests per language.

@codecov

codecov Bot commented Sep 21, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 93.26923% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.47%. Comparing base (1dd2e3b) to head (7b6c972).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
...s/src/main/java/io/javalin/testtools/HttpClient.kt 92.85% 4 Missing and 3 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2461      +/-   ##
============================================
+ Coverage     86.38%   86.47%   +0.09%     
- Complexity     1422     1432      +10     
============================================
  Files           147      147              
  Lines          4517     4600      +83     
  Branches        475      479       +4     
============================================
+ Hits           3902     3978      +76     
- Misses          400      404       +4     
- Partials        215      218       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>

Copilot AI commented Sep 21, 2025

Copy link
Copy Markdown
Contributor Author

@copilot could you also make sure that both Kotlin and Java tests cover the full API? If you find that there are some tests missing that you think should be there, you can add them, but no more than 4...

Added comprehensive API coverage tests for both Java and Kotlin as requested. Added 4 new tests per language (8 tests total) that cover:

Java & Kotlin Tests Added:

  • Response headers access: Tests headers().get() method with custom headers and null checks
  • Empty/null response bodies: Tests edge cases for empty response body handling
  • Complex request building: Tests multiple headers with direct HttpRequest.BodyPublishers usage
  • Custom HTTP methods: Tests PUT/PATCH/DELETE with non-JSON string bodies and Content-Type headers

The test coverage now thoroughly validates the full native JDK HttpClient wrapper API. All 36 tests pass (up from 28), ensuring complete API compatibility while testing advanced usage scenarios.

Commit: 17cc844

@tipsy

tipsy commented Sep 21, 2025

Copy link
Copy Markdown
Member

@copilot There are some fully qualified class names here, please use imports. Can you also try to tidy up a bit and reduce the line count?

…in tests

Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>

Copilot AI commented Sep 21, 2025

Copy link
Copy Markdown
Contributor Author

@copilot There are some fully qualified class names here, please use imports. Can you also try to tidy up a bit and reduce the line count?

Fixed the fully qualified class names and reduced line count as requested:

Changes Made:

  • Removed fully qualified imports: Replaced org.assertj.core.api.Assertions.assertThat() and java.net.http.HttpRequest.BodyPublishers with proper imports
  • Reduced line count by 42 lines: Condensed verbose test code by inlining variable declarations, combining assertions, and simplifying lambda expressions
  • Cleaner imports: Added missing java.net.http.HttpRequest import to Kotlin tests

The tests are now more concise and maintainable while preserving the same comprehensive API coverage. All 36 tests continue to pass.

Commit: 3e699ed

@tipsy

tipsy commented Sep 21, 2025

Copy link
Copy Markdown
Member

@copilot Great! There are still some fully qualified class names, like java.net.URLEncoder.encode or java.net.http.HttpHeaders. Please look through the whole change and use imports instead of these fully qualified class names.

…er imports

Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>

Copilot AI commented Sep 21, 2025

Copy link
Copy Markdown
Contributor Author

@copilot Great! There are still some fully qualified class names, like java.net.URLEncoder.encode or java.net.http.HttpHeaders. Please look through the whole change and use imports instead of thes...

Removed all remaining fully qualified class names as requested:

Fixed:

  • java.net.URLEncoder.encode → Added URLEncoder import, now uses URLEncoder.encode
  • java.net.http.HttpHeaders → Added JdkHttpHeaders import alias, now uses JdkHttpHeaders

Verified no remaining java.* qualified names exist in the codebase. All imports now follow proper conventions. All 36 tests continue to pass.

Commit: 7b6c972

@tipsy tipsy marked this pull request as ready for review September 21, 2025 14:46
@tipsy tipsy merged commit 29981a7 into master Sep 21, 2025
29 checks passed
@tipsy tipsy deleted the copilot/fix-2460 branch September 21, 2025 14:48
mergify Bot added a commit to robfrank/linklift that referenced this pull request Mar 10, 2026
Bumps `javalin.version` from 6.7.0 to 7.0.1.
Updates `io.javalin:javalin-bundle` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin:javalin-bundle's releases](https://github.com/javalin/javalin/releases).*

> 7.0.1
> -----
>
> What's Changed
> --------------
>
> * [readme] v7 release updates by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2527](https://redirect.github.com/javalin/javalin/pull/2527)
> * [micrometer] Fix interference with user-configured request logger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2533](https://redirect.github.com/javalin/javalin/pull/2533)
> * [logging] Allow for multiple request loggers by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2539](https://redirect.github.com/javalin/javalin/pull/2539)
>
> **Full Changelog**: <javalin/javalin@javalin-parent-7.0.0...javalin-parent-7.0.1>
>
> 7.0.0
> -----
>
> What's Changed
> --------------
>
> * Fix infinite loop in custom exception handling by [`@​LordOfLeaks`](https://github.com/LordOfLeaks) in [javalin/javalin#2423](https://redirect.github.com/javalin/javalin/pull/2423)
> * [workflow]: Bump actions/checkout from 4 to 5 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2428](https://redirect.github.com/javalin/javalin/pull/2428)
> * Add comprehensive GitHub Copilot instructions with commit message convention by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2433](https://redirect.github.com/javalin/javalin/pull/2433)
> * Bump and rename sslcontext-kickstart to ayza by [`@​Hakky54`](https://github.com/Hakky54) in [javalin/javalin#2434](https://redirect.github.com/javalin/javalin/pull/2434)
> * Update Javalin to version 7.0.0-SNAPSHOT with Java 17 requirement by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2431](https://redirect.github.com/javalin/javalin/pull/2431)
> * Improve test suite by adding HTTP status code assertions and cleaning up static files tests by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2437](https://redirect.github.com/javalin/javalin/pull/2437)
> * [core] Migrate to Jetty 12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2444](https://redirect.github.com/javalin/javalin/pull/2444)
> * [workflow]: Bump the dependencies group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2445](https://redirect.github.com/javalin/javalin/pull/2445)
> * Optimize static file handling by leveraging Jetty 12 native capabilities by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2447](https://redirect.github.com/javalin/javalin/pull/2447)
> * Upgrade Kotlin from 1.9.25 to 2.0.21 and remove JTE integration by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2452](https://redirect.github.com/javalin/javalin/pull/2452)
> * [deps] Update Pebble to 3.2.4 and fix package imports for CVE security fix by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2453](https://redirect.github.com/javalin/javalin/pull/2453)
> * Update all dependencies and plugins to latest stable versions by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2456](https://redirect.github.com/javalin/javalin/pull/2456)
> * [context] add support for quoted charset in content-type header ([#2448](https://redirect.github.com/javalin/javalin/issues/2448)) by [`@​Pinusar`](https://github.com/Pinusar) in [javalin/javalin#2449](https://redirect.github.com/javalin/javalin/pull/2449)
> * Add onUpgrade method to WebSocket RequestLogger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2450](https://redirect.github.com/javalin/javalin/pull/2450)
> * Fix cookie handling in JavalinTest client by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2459](https://redirect.github.com/javalin/javalin/pull/2459)
> * Replace OkHTTP with native JDK HttpClient in javalin-testtools by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2461](https://redirect.github.com/javalin/javalin/pull/2461)
> * [ssl] Drop Conscrypt ALPN support from SSL Plugin by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2464](https://redirect.github.com/javalin/javalin/pull/2464)
> * [compression] Add preferred compressors list by [`@​fabiobento512`](https://github.com/fabiobento512) in [javalin/javalin#2427](https://redirect.github.com/javalin/javalin/pull/2427)
> * Add Zstandard compression support using zstd-jni by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2465](https://redirect.github.com/javalin/javalin/pull/2465)
> * Fix Missing Allow Header in HTTP 405 Responses by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2468](https://redirect.github.com/javalin/javalin/pull/2468)
> * [sse] Relax Accept header validation to support multiple content types by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2474](https://redirect.github.com/javalin/javalin/pull/2474)
> * [routing] Support custom HTTP methods by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2478](https://redirect.github.com/javalin/javalin/pull/2478)
> * [tests] Fix flakiness in TestRateLimitUtil by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2477](https://redirect.github.com/javalin/javalin/pull/2477)
> * [javalin] Move routing to config by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2479](https://redirect.github.com/javalin/javalin/pull/2479)
> * [maven] Refactor modules by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2481](https://redirect.github.com/javalin/javalin/pull/2481)
> * [github] Improve copilot-instructions.md with comprehensive Javalin patterns and philosophy by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2483](https://redirect.github.com/javalin/javalin/pull/2483)
> * [core] Introduce endpoint stack and utilize endpoints more by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2486](https://redirect.github.com/javalin/javalin/pull/2486)
> * [async] Improve async handling by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2489](https://redirect.github.com/javalin/javalin/pull/2489)
> * [deps] Upgrade OkHttp to 5.3.0 by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2496](https://redirect.github.com/javalin/javalin/pull/2496)
> * [core] Add config option to disable old version check warning by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2499](https://redirect.github.com/javalin/javalin/pull/2499)
> * Add static keyword to wsBefore and wsAfter in ApiBuilder by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2501](https://redirect.github.com/javalin/javalin/pull/2501)
> * [deps] Update Pebble to 4.0.0 by [`@​kamenitxan`](https://github.com/kamenitxan) in [javalin/javalin#2502](https://redirect.github.com/javalin/javalin/pull/2502)
> * [workflow]: Bump actions/checkout from 5 to 6 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2503](https://redirect.github.com/javalin/javalin/pull/2503)
> * [config] Rework JavalinConfig by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2504](https://redirect.github.com/javalin/javalin/pull/2504)
> * [tests] Add missing test cases by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2506](https://redirect.github.com/javalin/javalin/pull/2506)
> * [cors] Use JDK's URI class by [`@​Playacem`](https://github.com/Playacem) in [javalin/javalin#2180](https://redirect.github.com/javalin/javalin/pull/2180)
> * [micrometer] Restore Micrometer plugin for Javalin7/Jetty12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2511](https://redirect.github.com/javalin/javalin/pull/2511)
> * [json] Fix NoClassDefFoundError for ObjectMapper on Kotlin 2.x by [`@​fahrradflucht`](https://github.com/fahrradflucht) in [javalin/javalin#2510](https://redirect.github.com/javalin/javalin/pull/2510)
> * Extend Context#redirect to beforeMatched and rename skipIfExceptionOccurred by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2515](https://redirect.github.com/javalin/javalin/pull/2515)
> * [routing] Clean up unused interfaces and generics by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2517](https://redirect.github.com/javalin/javalin/pull/2517)

... (truncated)


Commits

* [`bbe55e5`](javalin/javalin@bbe55e5) [maven-release-plugin] prepare release javalin-parent-7.0.1
* [`f5a4934`](javalin/javalin@f5a4934) [logging] Allow for multiple request loggers ([#2539](https://redirect.github.com/javalin/javalin/issues/2539))
* [`e134377`](javalin/javalin@e134377) [micrometer] Fix interference with user-configured request logger ([#2533](https://redirect.github.com/javalin/javalin/issues/2533))
* [`5b5b2fb`](javalin/javalin@5b5b2fb) [websocket] Fix attributes set in wsBeforeUpgrade not persisting to onConnect
* [`d4b8c5b`](javalin/javalin@d4b8c5b) [ratelimitplugin] Fix regression in default key function
* [`698995d`](javalin/javalin@698995d) [endpoints] Add option to get the future matched enpoint
* [`9c3461f`](javalin/javalin@9c3461f) [docs] Update for v7
* [`6821dea`](javalin/javalin@6821dea) [maven-release-plugin] prepare for next development iteration
* [`3e02e28`](javalin/javalin@3e02e28) [maven-release-plugin] prepare release javalin-parent-7.0.0
* [`a02ecb7`](javalin/javalin@a02ecb7) [pom] Publish aggregator poms to fix release deploy
* Additional commits viewable in [compare view](javalin/javalin@javalin-parent-6.7.0...javalin-parent-7.0.1)
  
Updates `io.javalin.community.openapi:javalin-openapi-plugin` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin.community.openapi:javalin-openapi-plugin's releases](https://github.com/javalin/javalin-openapi/releases).*

> 7.0.0
> -----
>
> **Changes**
>
> * See: <https://javalin.github.io/javalin-openapi/introduction/migration-from-6x.html>
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜
>
> **Minimal requirements**
>
> * Java 17+ / Kotlin 2.3+
> * Javalin 7.0.0
>
> **Download**
>
> * [Wiki / Installation](https://github.com/javalin/javalin-openapi/wiki/1.-Installation)
>
> 7.0.0-beta.1
> ------------
>
> **Changes**
>
> * Support Javalin 7.0.0-beta.1
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜

... (truncated)


Commits

* [`4a073c8`](javalin/javalin-openapi@4a073c8) [GH-274](https://redirect.github.com/javalin/javalin-openapi/issues/274) Release 7.0.1 (Resolves [#274](https://redirect.github.com/javalin/javalin-openapi/issues/274))
* [`11d10d5`](javalin/javalin-openapi@11d10d5) [GH-273](https://redirect.github.com/javalin/javalin-openapi/issues/273) Restructure dependencies (Fixes [#272](https://redirect.github.com/javalin/javalin-openapi/issues/272))
* [`41b3061`](javalin/javalin-openapi@41b3061) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Migration guide from 6.x
* [`1669065`](javalin/javalin-openapi@1669065) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Redesign core implementation for Javalin 7.x
* [`0c6ba93`](javalin/javalin-openapi@0c6ba93) [GH-268](https://redirect.github.com/javalin/javalin-openapi/issues/268) Replace wiki reference with a new docs in README ([#268](https://redirect.github.com/javalin/javalin-openapi/issues/268))
* [`5346ada`](javalin/javalin-openapi@5346ada) chore: adjust module resource path formatting in readme
* [`dd49a03`](javalin/javalin-openapi@dd49a03) fix: modify OpenAPI plugin resource path description
* [`13e6778`](javalin/javalin-openapi@13e6778) chore: update README for Javalin 7.x changes
* [`57ff8f7`](javalin/javalin-openapi@57ff8f7) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Drop GitHub Wiki
* [`b94bc1f`](javalin/javalin-openapi@b94bc1f) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Define custom base path for docs deployed to GitHub pages
* Additional commits viewable in [compare view](javalin/javalin-openapi@6.7.0...7.0.1)
  
Updates `io.javalin.community.openapi:javalin-swagger-plugin` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin.community.openapi:javalin-swagger-plugin's releases](https://github.com/javalin/javalin-openapi/releases).*

> 7.0.0
> -----
>
> **Changes**
>
> * See: <https://javalin.github.io/javalin-openapi/introduction/migration-from-6x.html>
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜
>
> **Minimal requirements**
>
> * Java 17+ / Kotlin 2.3+
> * Javalin 7.0.0
>
> **Download**
>
> * [Wiki / Installation](https://github.com/javalin/javalin-openapi/wiki/1.-Installation)
>
> 7.0.0-beta.1
> ------------
>
> **Changes**
>
> * Support Javalin 7.0.0-beta.1
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜

... (truncated)


Commits

* [`4a073c8`](javalin/javalin-openapi@4a073c8) [GH-274](https://redirect.github.com/javalin/javalin-openapi/issues/274) Release 7.0.1 (Resolves [#274](https://redirect.github.com/javalin/javalin-openapi/issues/274))
* [`11d10d5`](javalin/javalin-openapi@11d10d5) [GH-273](https://redirect.github.com/javalin/javalin-openapi/issues/273) Restructure dependencies (Fixes [#272](https://redirect.github.com/javalin/javalin-openapi/issues/272))
* [`41b3061`](javalin/javalin-openapi@41b3061) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Migration guide from 6.x
* [`1669065`](javalin/javalin-openapi@1669065) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Redesign core implementation for Javalin 7.x
* [`0c6ba93`](javalin/javalin-openapi@0c6ba93) [GH-268](https://redirect.github.com/javalin/javalin-openapi/issues/268) Replace wiki reference with a new docs in README ([#268](https://redirect.github.com/javalin/javalin-openapi/issues/268))
* [`5346ada`](javalin/javalin-openapi@5346ada) chore: adjust module resource path formatting in readme
* [`dd49a03`](javalin/javalin-openapi@dd49a03) fix: modify OpenAPI plugin resource path description
* [`13e6778`](javalin/javalin-openapi@13e6778) chore: update README for Javalin 7.x changes
* [`57ff8f7`](javalin/javalin-openapi@57ff8f7) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Drop GitHub Wiki
* [`b94bc1f`](javalin/javalin-openapi@b94bc1f) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Define custom base path for docs deployed to GitHub pages
* Additional commits viewable in [compare view](javalin/javalin-openapi@6.7.0...7.0.1)
  
Updates `io.javalin:javalin-micrometer` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin:javalin-micrometer's releases](https://github.com/javalin/javalin/releases).*

> 7.0.1
> -----
>
> What's Changed
> --------------
>
> * [readme] v7 release updates by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2527](https://redirect.github.com/javalin/javalin/pull/2527)
> * [micrometer] Fix interference with user-configured request logger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2533](https://redirect.github.com/javalin/javalin/pull/2533)
> * [logging] Allow for multiple request loggers by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2539](https://redirect.github.com/javalin/javalin/pull/2539)
>
> **Full Changelog**: <javalin/javalin@javalin-parent-7.0.0...javalin-parent-7.0.1>
>
> 7.0.0
> -----
>
> What's Changed
> --------------
>
> * Fix infinite loop in custom exception handling by [`@​LordOfLeaks`](https://github.com/LordOfLeaks) in [javalin/javalin#2423](https://redirect.github.com/javalin/javalin/pull/2423)
> * [workflow]: Bump actions/checkout from 4 to 5 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2428](https://redirect.github.com/javalin/javalin/pull/2428)
> * Add comprehensive GitHub Copilot instructions with commit message convention by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2433](https://redirect.github.com/javalin/javalin/pull/2433)
> * Bump and rename sslcontext-kickstart to ayza by [`@​Hakky54`](https://github.com/Hakky54) in [javalin/javalin#2434](https://redirect.github.com/javalin/javalin/pull/2434)
> * Update Javalin to version 7.0.0-SNAPSHOT with Java 17 requirement by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2431](https://redirect.github.com/javalin/javalin/pull/2431)
> * Improve test suite by adding HTTP status code assertions and cleaning up static files tests by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2437](https://redirect.github.com/javalin/javalin/pull/2437)
> * [core] Migrate to Jetty 12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2444](https://redirect.github.com/javalin/javalin/pull/2444)
> * [workflow]: Bump the dependencies group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2445](https://redirect.github.com/javalin/javalin/pull/2445)
> * Optimize static file handling by leveraging Jetty 12 native capabilities by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2447](https://redirect.github.com/javalin/javalin/pull/2447)
> * Upgrade Kotlin from 1.9.25 to 2.0.21 and remove JTE integration by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2452](https://redirect.github.com/javalin/javalin/pull/2452)
> * [deps] Update Pebble to 3.2.4 and fix package imports for CVE security fix by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2453](https://redirect.github.com/javalin/javalin/pull/2453)
> * Update all dependencies and plugins to latest stable versions by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2456](https://redirect.github.com/javalin/javalin/pull/2456)
> * [context] add support for quoted charset in content-type header ([#2448](https://redirect.github.com/javalin/javalin/issues/2448)) by [`@​Pinusar`](https://github.com/Pinusar) in [javalin/javalin#2449](https://redirect.github.com/javalin/javalin/pull/2449)
> * Add onUpgrade method to WebSocket RequestLogger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2450](https://redirect.github.com/javalin/javalin/pull/2450)
> * Fix cookie handling in JavalinTest client by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2459](https://redirect.github.com/javalin/javalin/pull/2459)
> * Replace OkHTTP with native JDK HttpClient in javalin-testtools by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2461](https://redirect.github.com/javalin/javalin/pull/2461)
> * [ssl] Drop Conscrypt ALPN support from SSL Plugin by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2464](https://redirect.github.com/javalin/javalin/pull/2464)
> * [compression] Add preferred compressors list by [`@​fabiobento512`](https://github.com/fabiobento512) in [javalin/javalin#2427](https://redirect.github.com/javalin/javalin/pull/2427)
> * Add Zstandard compression support using zstd-jni by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2465](https://redirect.github.com/javalin/javalin/pull/2465)
> * Fix Missing Allow Header in HTTP 405 Responses by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2468](https://redirect.github.com/javalin/javalin/pull/2468)
> * [sse] Relax Accept header validation to support multiple content types by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2474](https://redirect.github.com/javalin/javalin/pull/2474)
> * [routing] Support custom HTTP methods by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2478](https://redirect.github.com/javalin/javalin/pull/2478)
> * [tests] Fix flakiness in TestRateLimitUtil by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2477](https://redirect.github.com/javalin/javalin/pull/2477)
> * [javalin] Move routing to config by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2479](https://redirect.github.com/javalin/javalin/pull/2479)
> * [maven] Refactor modules by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2481](https://redirect.github.com/javalin/javalin/pull/2481)
> * [github] Improve copilot-instructions.md with comprehensive Javalin patterns and philosophy by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2483](https://redirect.github.com/javalin/javalin/pull/2483)
> * [core] Introduce endpoint stack and utilize endpoints more by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2486](https://redirect.github.com/javalin/javalin/pull/2486)
> * [async] Improve async handling by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2489](https://redirect.github.com/javalin/javalin/pull/2489)
> * [deps] Upgrade OkHttp to 5.3.0 by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2496](https://redirect.github.com/javalin/javalin/pull/2496)
> * [core] Add config option to disable old version check warning by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2499](https://redirect.github.com/javalin/javalin/pull/2499)
> * Add static keyword to wsBefore and wsAfter in ApiBuilder by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2501](https://redirect.github.com/javalin/javalin/pull/2501)
> * [deps] Update Pebble to 4.0.0 by [`@​kamenitxan`](https://github.com/kamenitxan) in [javalin/javalin#2502](https://redirect.github.com/javalin/javalin/pull/2502)
> * [workflow]: Bump actions/checkout from 5 to 6 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2503](https://redirect.github.com/javalin/javalin/pull/2503)
> * [config] Rework JavalinConfig by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2504](https://redirect.github.com/javalin/javalin/pull/2504)
> * [tests] Add missing test cases by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2506](https://redirect.github.com/javalin/javalin/pull/2506)
> * [cors] Use JDK's URI class by [`@​Playacem`](https://github.com/Playacem) in [javalin/javalin#2180](https://redirect.github.com/javalin/javalin/pull/2180)
> * [micrometer] Restore Micrometer plugin for Javalin7/Jetty12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2511](https://redirect.github.com/javalin/javalin/pull/2511)
> * [json] Fix NoClassDefFoundError for ObjectMapper on Kotlin 2.x by [`@​fahrradflucht`](https://github.com/fahrradflucht) in [javalin/javalin#2510](https://redirect.github.com/javalin/javalin/pull/2510)
> * Extend Context#redirect to beforeMatched and rename skipIfExceptionOccurred by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2515](https://redirect.github.com/javalin/javalin/pull/2515)
> * [routing] Clean up unused interfaces and generics by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2517](https://redirect.github.com/javalin/javalin/pull/2517)

... (truncated)


Commits

* [`bbe55e5`](javalin/javalin@bbe55e5) [maven-release-plugin] prepare release javalin-parent-7.0.1
* [`f5a4934`](javalin/javalin@f5a4934) [logging] Allow for multiple request loggers ([#2539](https://redirect.github.com/javalin/javalin/issues/2539))
* [`e134377`](javalin/javalin@e134377) [micrometer] Fix interference with user-configured request logger ([#2533](https://redirect.github.com/javalin/javalin/issues/2533))
* [`5b5b2fb`](javalin/javalin@5b5b2fb) [websocket] Fix attributes set in wsBeforeUpgrade not persisting to onConnect
* [`d4b8c5b`](javalin/javalin@d4b8c5b) [ratelimitplugin] Fix regression in default key function
* [`698995d`](javalin/javalin@698995d) [endpoints] Add option to get the future matched enpoint
* [`9c3461f`](javalin/javalin@9c3461f) [docs] Update for v7
* [`6821dea`](javalin/javalin@6821dea) [maven-release-plugin] prepare for next development iteration
* [`3e02e28`](javalin/javalin@3e02e28) [maven-release-plugin] prepare release javalin-parent-7.0.0
* [`a02ecb7`](javalin/javalin@a02ecb7) [pom] Publish aggregator poms to fix release deploy
* Additional commits viewable in [compare view](javalin/javalin@javalin-parent-6.7.0...javalin-parent-7.0.1)
  
Updates `io.javalin:javalin-testtools` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin:javalin-testtools's releases](https://github.com/javalin/javalin/releases).*

> 7.0.1
> -----
>
> What's Changed
> --------------
>
> * [readme] v7 release updates by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2527](https://redirect.github.com/javalin/javalin/pull/2527)
> * [micrometer] Fix interference with user-configured request logger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2533](https://redirect.github.com/javalin/javalin/pull/2533)
> * [logging] Allow for multiple request loggers by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2539](https://redirect.github.com/javalin/javalin/pull/2539)
>
> **Full Changelog**: <javalin/javalin@javalin-parent-7.0.0...javalin-parent-7.0.1>
>
> 7.0.0
> -----
>
> What's Changed
> --------------
>
> * Fix infinite loop in custom exception handling by [`@​LordOfLeaks`](https://github.com/LordOfLeaks) in [javalin/javalin#2423](https://redirect.github.com/javalin/javalin/pull/2423)
> * [workflow]: Bump actions/checkout from 4 to 5 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2428](https://redirect.github.com/javalin/javalin/pull/2428)
> * Add comprehensive GitHub Copilot instructions with commit message convention by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2433](https://redirect.github.com/javalin/javalin/pull/2433)
> * Bump and rename sslcontext-kickstart to ayza by [`@​Hakky54`](https://github.com/Hakky54) in [javalin/javalin#2434](https://redirect.github.com/javalin/javalin/pull/2434)
> * Update Javalin to version 7.0.0-SNAPSHOT with Java 17 requirement by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2431](https://redirect.github.com/javalin/javalin/pull/2431)
> * Improve test suite by adding HTTP status code assertions and cleaning up static files tests by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2437](https://redirect.github.com/javalin/javalin/pull/2437)
> * [core] Migrate to Jetty 12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2444](https://redirect.github.com/javalin/javalin/pull/2444)
> * [workflow]: Bump the dependencies group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2445](https://redirect.github.com/javalin/javalin/pull/2445)
> * Optimize static file handling by leveraging Jetty 12 native capabilities by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2447](https://redirect.github.com/javalin/javalin/pull/2447)
> * Upgrade Kotlin from 1.9.25 to 2.0.21 and remove JTE integration by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2452](https://redirect.github.com/javalin/javalin/pull/2452)
> * [deps] Update Pebble to 3.2.4 and fix package imports for CVE security fix by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2453](https://redirect.github.com/javalin/javalin/pull/2453)
> * Update all dependencies and plugins to latest stable versions by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2456](https://redirect.github.com/javalin/javalin/pull/2456)
> * [context] add support for quoted charset in content-type header ([#2448](https://redirect.github.com/javalin/javalin/issues/2448)) by [`@​Pinusar`](https://github.com/Pinusar) in [javalin/javalin#2449](https://redirect.github.com/javalin/javalin/pull/2449)
> * Add onUpgrade method to WebSocket RequestLogger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2450](https://redirect.github.com/javalin/javalin/pull/2450)
> * Fix cookie handling in JavalinTest client by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2459](https://redirect.github.com/javalin/javalin/pull/2459)
> * Replace OkHTTP with native JDK HttpClient in javalin-testtools by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2461](https://redirect.github.com/javalin/javalin/pull/2461)
> * [ssl] Drop Conscrypt ALPN support from SSL Plugin by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2464](https://redirect.github.com/javalin/javalin/pull/2464)
> * [compression] Add preferred compressors list by [`@​fabiobento512`](https://github.com/fabiobento512) in [javalin/javalin#2427](https://redirect.github.com/javalin/javalin/pull/2427)
> * Add Zstandard compression support using zstd-jni by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2465](https://redirect.github.com/javalin/javalin/pull/2465)
> * Fix Missing Allow Header in HTTP 405 Responses by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2468](https://redirect.github.com/javalin/javalin/pull/2468)
> * [sse] Relax Accept header validation to support multiple content types by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2474](https://redirect.github.com/javalin/javalin/pull/2474)
> * [routing] Support custom HTTP methods by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2478](https://redirect.github.com/javalin/javalin/pull/2478)
> * [tests] Fix flakiness in TestRateLimitUtil by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2477](https://redirect.github.com/javalin/javalin/pull/2477)
> * [javalin] Move routing to config by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2479](https://redirect.github.com/javalin/javalin/pull/2479)
> * [maven] Refactor modules by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2481](https://redirect.github.com/javalin/javalin/pull/2481)
> * [github] Improve copilot-instructions.md with comprehensive Javalin patterns and philosophy by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2483](https://redirect.github.com/javalin/javalin/pull/2483)
> * [core] Introduce endpoint stack and utilize endpoints more by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2486](https://redirect.github.com/javalin/javalin/pull/2486)
> * [async] Improve async handling by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2489](https://redirect.github.com/javalin/javalin/pull/2489)
> * [deps] Upgrade OkHttp to 5.3.0 by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2496](https://redirect.github.com/javalin/javalin/pull/2496)
> * [core] Add config option to disable old version check warning by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2499](https://redirect.github.com/javalin/javalin/pull/2499)
> * Add static keyword to wsBefore and wsAfter in ApiBuilder by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2501](https://redirect.github.com/javalin/javalin/pull/2501)
> * [deps] Update Pebble to 4.0.0 by [`@​kamenitxan`](https://github.com/kamenitxan) in [javalin/javalin#2502](https://redirect.github.com/javalin/javalin/pull/2502)
> * [workflow]: Bump actions/checkout from 5 to 6 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2503](https://redirect.github.com/javalin/javalin/pull/2503)
> * [config] Rework JavalinConfig by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2504](https://redirect.github.com/javalin/javalin/pull/2504)
> * [tests] Add missing test cases by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2506](https://redirect.github.com/javalin/javalin/pull/2506)
> * [cors] Use JDK's URI class by [`@​Playacem`](https://github.com/Playacem) in [javalin/javalin#2180](https://redirect.github.com/javalin/javalin/pull/2180)
> * [micrometer] Restore Micrometer plugin for Javalin7/Jetty12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2511](https://redirect.github.com/javalin/javalin/pull/2511)
> * [json] Fix NoClassDefFoundError for ObjectMapper on Kotlin 2.x by [`@​fahrradflucht`](https://github.com/fahrradflucht) in [javalin/javalin#2510](https://redirect.github.com/javalin/javalin/pull/2510)
> * Extend Context#redirect to beforeMatched and rename skipIfExceptionOccurred by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2515](https://redirect.github.com/javalin/javalin/pull/2515)
> * [routing] Clean up unused interfaces and generics by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2517](https://redirect.github.com/javalin/javalin/pull/2517)

... (truncated)


Commits

* [`bbe55e5`](javalin/javalin@bbe55e5) [maven-release-plugin] prepare release javalin-parent-7.0.1
* [`f5a4934`](javalin/javalin@f5a4934) [logging] Allow for multiple request loggers ([#2539](https://redirect.github.com/javalin/javalin/issues/2539))
* [`e134377`](javalin/javalin@e134377) [micrometer] Fix interference with user-configured request logger ([#2533](https://redirect.github.com/javalin/javalin/issues/2533))
* [`5b5b2fb`](javalin/javalin@5b5b2fb) [websocket] Fix attributes set in wsBeforeUpgrade not persisting to onConnect
* [`d4b8c5b`](javalin/javalin@d4b8c5b) [ratelimitplugin] Fix regression in default key function
* [`698995d`](javalin/javalin@698995d) [endpoints] Add option to get the future matched enpoint
* [`9c3461f`](javalin/javalin@9c3461f) [docs] Update for v7
* [`6821dea`](javalin/javalin@6821dea) [maven-release-plugin] prepare for next development iteration
* [`3e02e28`](javalin/javalin@3e02e28) [maven-release-plugin] prepare release javalin-parent-7.0.0
* [`a02ecb7`](javalin/javalin@a02ecb7) [pom] Publish aggregator poms to fix release deploy
* Additional commits viewable in [compare view](javalin/javalin@javalin-parent-6.7.0...javalin-parent-7.0.1)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace OkHTTP in JavalinTest with native JDK client

2 participants