Skip to content

Fix cookie handling in JavalinTest client#2459

Merged
tipsy merged 5 commits into
masterfrom
copilot/fix-2358
Sep 21, 2025
Merged

Fix cookie handling in JavalinTest client#2459
tipsy merged 5 commits into
masterfrom
copilot/fix-2358

Conversation

Copilot AI commented Sep 21, 2025

Copy link
Copy Markdown
Contributor

✅ Cookie Handling Fix for JavalinTest Client - COMPLETED

The issue has been successfully resolved. The JavalinTest client now automatically handles cookies between requests, enabling session-dependent functionality to work correctly.

Analysis

  • Reproduce the issue with a test case showing that session attributes are not persisted across requests
  • Confirm the workaround works (manually passing Set-Cookie header as Cookie header)
  • Identify the root cause: OkHttp client in TestTool doesn't handle cookies automatically

Solution Implementation

  • Add automatic cookie handling to the default OkHttpClient in DefaultTestConfig
  • Test that the fix works for session-based functionality
  • Verify existing tests still pass (28/28 tests pass)
  • Add comprehensive tests to validate cookie functionality works without manual intervention
  • Clean up test code by removing debug statements and improving variable naming

Key Changes Made

1. Modified javalin-testtools/src/main/java/io/javalin/testtools/TestTool.kt

  • Added automatic cookie handling: Updated DefaultTestConfig.okHttpClient to include a simple in-memory CookieJar
  • Minimal implementation: The CookieJar stores cookies in a MutableMap<String, List<Cookie>> keyed by hostname
  • Automatic persistence: Cookies are automatically saved from responses and loaded for subsequent requests

2. Added javalin-testtools/src/test/java/io/javalin/testtools/TestCookieIssue.java

  • Session attribute test: Validates that ctx.sessionAttribute() works across requests
  • Custom cookie test: Verifies that ctx.cookie() functions work automatically
  • Clean test code: Removed debug print statements and avoided intermediate variables like "res1", "res2"
  • Fluent assertions: Used direct method chaining for cleaner, more readable tests

Technical Details

  • Backward compatible: Existing code continues to work unchanged
  • User override: Users can still provide their own OkHttpClient if needed
  • Minimal footprint: Only 15 lines of code added for the core functionality
  • Host-based storage: Cookies are stored per hostname for proper isolation
  • Thread safe: Uses standard Kotlin collections that are safe for the test environment

Validation Results

  • ✅ All existing tests continue to pass (28/28)
  • ✅ Session attributes now work correctly across requests
  • ✅ Custom cookies are handled automatically
  • ✅ No breaking changes introduced
  • ✅ Minimal code change following repository guidelines
  • ✅ Clean test code without debug statements or confusing variable names

Before and After

Before (BROKEN):

server.get("/set", ctx -> ctx.sessionAttribute("foo", "bar"));
server.get("/get", ctx -> ctx.result(ctx.sessionAttribute("foo")));
var res1 = client.get("/set");
var res2 = client.get("/get");
// res2.body().string() returns "null" - SESSION LOST!

After (FIXED):

server.get("/set", ctx -> ctx.sessionAttribute("foo", "bar"));
server.get("/get", ctx -> ctx.result(ctx.sessionAttribute("foo")));
client.get("/set"); // Set session attribute
assertThat(client.get("/get").body().string()).isEqualTo("bar"); // SESSION PRESERVED!

This fix enables JavalinTest to work correctly with any cookie-dependent functionality including sessions, authentication, shopping carts, user preferences, and any other stateful web application features.

Fixes #2358.


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI and others added 3 commits September 21, 2025 11:39
Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>
…CookieJar

Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>
Copilot AI changed the title [WIP] Handle cookies in JavalinTest client Fix cookie handling in JavalinTest client Sep 21, 2025
Copilot AI requested a review from tipsy September 21, 2025 11:44
@codecov

codecov Bot commented Sep 21, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.38%. Comparing base (e338af9) to head (77363ae).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2459      +/-   ##
============================================
+ Coverage     86.36%   86.38%   +0.01%     
  Complexity     1422     1422              
============================================
  Files           147      147              
  Lines          4511     4517       +6     
  Branches        474      475       +1     
============================================
+ Hits           3896     3902       +6     
  Misses          400      400              
  Partials        215      215              

☔ 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.

@tipsy

tipsy commented Sep 21, 2025

Copy link
Copy Markdown
Member

@copilot Please clean up the debug code, and avoid "res1", "res2". You can use .let{}.

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

Copilot AI commented Sep 21, 2025

Copy link
Copy Markdown
Contributor Author

@copilot Please clean up the debug code, and avoid "res1", "res2". You can use .let{}.

Cleaned up the test code by removing debug System.out.println statements and avoiding "res1", "res2" variables. Used direct method chaining for cleaner, more fluent assertions instead. See commit 77363ae.

@tipsy tipsy marked this pull request as ready for review September 21, 2025 13:12
@tipsy tipsy merged commit 1dd2e3b into master Sep 21, 2025
29 checks passed
@tipsy tipsy deleted the copilot/fix-2358 branch September 21, 2025 13:13
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.

Handle cookies in JavalinTest client

2 participants