Add wsExceptionHandler to MicrometerPlugin for WebSocket exception tagging#2557
Conversation
… support Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>
wsExceptionHandler to MicrometerPlugin for WebSocket exception tagging
|
@copilot no test? |
Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>
Added in 106b1af — Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2557 +/- ##
=========================================
Coverage 86.29% 86.29%
Complexity 1509 1509
=========================================
Files 155 155
Lines 4348 4348
Branches 523 523
=========================================
Hits 3752 3752
Misses 363 363
Partials 233 233 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
augment review |
🤖 Augment PR SummarySummary: Adds WebSocket-specific exception tagging support to the Micrometer plugin so WS exceptions can be delegated without a type mismatch. Changes:
Technical Notes: Mirrors the existing HTTP exception-tagging approach (header) by using a 🤖 Was this summary useful? React with 👍 or 👎 |
|
@copilot consider review comment |
…ndalone handler Co-authored-by: tipsy <1521451+tipsy@users.noreply.github.com>
Addressed in 422682e — updated the README doc to clarify that registering a Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Bumps `javalin.version` from 7.0.1 to 7.1.0. Updates `io.javalin:javalin-bundle` from 7.0.1 to 7.1.0 Release notes *Sourced from [io.javalin:javalin-bundle's releases](https://github.com/javalin/javalin/releases).* > 7.1.0 > ----- > > What's Changed > -------------- > > * Bump com.fasterxml.jackson.core:jackson-core from 2.21.0 to 2.21.1 by [`@dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2543](https://redirect.github.com/javalin/javalin/pull/2543) > * [deps]: Bump the dependencies group across 1 directory with 17 updates by [`@dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2545](https://redirect.github.com/javalin/javalin/pull/2545) > * [websocket] Fix WebSocket over HTTP/2 Extended Connect (RFC 8441) by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2547](https://redirect.github.com/javalin/javalin/pull/2547) > * fix(README): update artifactId for SSL plugin in `README.md` by [`@yvasyliev`](https://github.com/yvasyliev) in [javalin/javalin#2556](https://redirect.github.com/javalin/javalin/pull/2556) > * Add `wsExceptionHandler` to `MicrometerPlugin` for WebSocket exception tagging by [`@Copilot`](https://github.com/Copilot) in [javalin/javalin#2557](https://redirect.github.com/javalin/javalin/pull/2557) > * [rendering] jte - introduce directoryTemplateEngine for (6.x-like), rename default to classPathTemplateEngine by [`@elwin013`](https://github.com/elwin013) in [javalin/javalin#2551](https://redirect.github.com/javalin/javalin/pull/2551) > * Add javalin-bom module by [`@Copilot`](https://github.com/Copilot) in [javalin/javalin#2558](https://redirect.github.com/javalin/javalin/pull/2558) > * [performance] Reduce per-request overhead in hot path by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2559](https://redirect.github.com/javalin/javalin/pull/2559) > * [performance] Eliminate per-request regex and allocation overhead by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2560](https://redirect.github.com/javalin/javalin/pull/2560) > > New Contributors > ---------------- > > * [`@yvasyliev`](https://github.com/yvasyliev) made their first contribution in [javalin/javalin#2556](https://redirect.github.com/javalin/javalin/pull/2556) > * [`@elwin013`](https://github.com/elwin013) made their first contribution in [javalin/javalin#2551](https://redirect.github.com/javalin/javalin/pull/2551) > > **Full Changelog**: <javalin/javalin@javalin-parent-7.0.1...javalin-parent-7.1.0> Commits * [`e458dba`](javalin/javalin@e458dba) [maven-release-plugin] prepare for next development iteration * [`9766d2f`](javalin/javalin@9766d2f) [maven-release-plugin] prepare release javalin-parent-7.1.0 * [`12acf0b`](javalin/javalin@12acf0b) [performance] Eliminate per-request regex and allocation overhead ([#2560](https://redirect.github.com/javalin/javalin/issues/2560)) * [`f6a1e40`](javalin/javalin@f6a1e40) [performance] Reduce per-request overhead in hot path * [`1e59eda`](javalin/javalin@1e59eda) [pom] Add javalin-bom module ([#2558](https://redirect.github.com/javalin/javalin/issues/2558)) * [`b43f37a`](javalin/javalin@b43f37a) [rendering] jte - introduce directoryTemplateEngine for (6.x-like behavior) * [`72b2320`](javalin/javalin@72b2320) [micrometer] Add `wsExceptionHandler` to `MicrometerPlugin` * [`37c91c4`](javalin/javalin@37c91c4) [readme] Update artifactId for SSL plugin * [`9acf45e`](javalin/javalin@9acf45e) [cleanup] Use Header constants * [`0289084`](javalin/javalin@0289084) [headers] Add missing headers to Header.kt * Additional commits viewable in [compare view](javalin/javalin@javalin-parent-7.0.1...7.1.0) Updates `io.javalin.community.openapi:javalin-openapi-plugin` from 7.0.1 to 7.1.0 Release notes *Sourced from [io.javalin.community.openapi:javalin-openapi-plugin's releases](https://github.com/javalin/javalin-openapi/releases).* > 7.1.0 > ----- > > **Changes** > > * [javalin/javalin-openapi#275](https://redirect.github.com/javalin/javalin-openapi/issues/275) [Make ClassLoader used for loading resources configurable](javalin/javalin-openapi@de1b6b7) > * Support Javalin 7.1.0 > > **Sponsors** > Thanks to everyone who supported me this month 💜 > > **Minimal requirements** > > * Java 17+ / Kotlin 2.3+ > * Javalin 7.1.0 Commits * [`5388862`](javalin/javalin-openapi@5388862) [GH-275](https://redirect.github.com/javalin/javalin-openapi/issues/275) Cover missing resource loaders and release 7.1.1-rc.1 * [`cbbc8d0`](javalin/javalin-openapi@cbbc8d0) [GH-276](https://redirect.github.com/javalin/javalin-openapi/issues/276) Release 7.1.0 (Resolves [#276](https://redirect.github.com/javalin/javalin-openapi/issues/276)) * [`de1b6b7`](javalin/javalin-openapi@de1b6b7) [GH-275](https://redirect.github.com/javalin/javalin-openapi/issues/275) Make ClassLoader used for loading resources configurable (Resolves [#275](https://redirect.github.com/javalin/javalin-openapi/issues/275)) * See full diff in [compare view](javalin/javalin-openapi@7.0.1...7.1.0) Updates `io.javalin.community.openapi:javalin-swagger-plugin` from 7.0.1 to 7.1.0 Release notes *Sourced from [io.javalin.community.openapi:javalin-swagger-plugin's releases](https://github.com/javalin/javalin-openapi/releases).* > 7.1.0 > ----- > > **Changes** > > * [javalin/javalin-openapi#275](https://redirect.github.com/javalin/javalin-openapi/issues/275) [Make ClassLoader used for loading resources configurable](javalin/javalin-openapi@de1b6b7) > * Support Javalin 7.1.0 > > **Sponsors** > Thanks to everyone who supported me this month 💜 > > **Minimal requirements** > > * Java 17+ / Kotlin 2.3+ > * Javalin 7.1.0 Commits * [`5388862`](javalin/javalin-openapi@5388862) [GH-275](https://redirect.github.com/javalin/javalin-openapi/issues/275) Cover missing resource loaders and release 7.1.1-rc.1 * [`cbbc8d0`](javalin/javalin-openapi@cbbc8d0) [GH-276](https://redirect.github.com/javalin/javalin-openapi/issues/276) Release 7.1.0 (Resolves [#276](https://redirect.github.com/javalin/javalin-openapi/issues/276)) * [`de1b6b7`](javalin/javalin-openapi@de1b6b7) [GH-275](https://redirect.github.com/javalin/javalin-openapi/issues/275) Make ClassLoader used for loading resources configurable (Resolves [#275](https://redirect.github.com/javalin/javalin-openapi/issues/275)) * See full diff in [compare view](javalin/javalin-openapi@7.0.1...7.1.0) Updates `io.javalin:javalin-micrometer` from 7.0.1 to 7.1.0 Release notes *Sourced from [io.javalin:javalin-micrometer's releases](https://github.com/javalin/javalin/releases).* > 7.1.0 > ----- > > What's Changed > -------------- > > * Bump com.fasterxml.jackson.core:jackson-core from 2.21.0 to 2.21.1 by [`@dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2543](https://redirect.github.com/javalin/javalin/pull/2543) > * [deps]: Bump the dependencies group across 1 directory with 17 updates by [`@dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2545](https://redirect.github.com/javalin/javalin/pull/2545) > * [websocket] Fix WebSocket over HTTP/2 Extended Connect (RFC 8441) by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2547](https://redirect.github.com/javalin/javalin/pull/2547) > * fix(README): update artifactId for SSL plugin in `README.md` by [`@yvasyliev`](https://github.com/yvasyliev) in [javalin/javalin#2556](https://redirect.github.com/javalin/javalin/pull/2556) > * Add `wsExceptionHandler` to `MicrometerPlugin` for WebSocket exception tagging by [`@Copilot`](https://github.com/Copilot) in [javalin/javalin#2557](https://redirect.github.com/javalin/javalin/pull/2557) > * [rendering] jte - introduce directoryTemplateEngine for (6.x-like), rename default to classPathTemplateEngine by [`@elwin013`](https://github.com/elwin013) in [javalin/javalin#2551](https://redirect.github.com/javalin/javalin/pull/2551) > * Add javalin-bom module by [`@Copilot`](https://github.com/Copilot) in [javalin/javalin#2558](https://redirect.github.com/javalin/javalin/pull/2558) > * [performance] Reduce per-request overhead in hot path by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2559](https://redirect.github.com/javalin/javalin/pull/2559) > * [performance] Eliminate per-request regex and allocation overhead by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2560](https://redirect.github.com/javalin/javalin/pull/2560) > > New Contributors > ---------------- > > * [`@yvasyliev`](https://github.com/yvasyliev) made their first contribution in [javalin/javalin#2556](https://redirect.github.com/javalin/javalin/pull/2556) > * [`@elwin013`](https://github.com/elwin013) made their first contribution in [javalin/javalin#2551](https://redirect.github.com/javalin/javalin/pull/2551) > > **Full Changelog**: <javalin/javalin@javalin-parent-7.0.1...javalin-parent-7.1.0> Commits * [`e458dba`](javalin/javalin@e458dba) [maven-release-plugin] prepare for next development iteration * [`9766d2f`](javalin/javalin@9766d2f) [maven-release-plugin] prepare release javalin-parent-7.1.0 * [`12acf0b`](javalin/javalin@12acf0b) [performance] Eliminate per-request regex and allocation overhead ([#2560](https://redirect.github.com/javalin/javalin/issues/2560)) * [`f6a1e40`](javalin/javalin@f6a1e40) [performance] Reduce per-request overhead in hot path * [`1e59eda`](javalin/javalin@1e59eda) [pom] Add javalin-bom module ([#2558](https://redirect.github.com/javalin/javalin/issues/2558)) * [`b43f37a`](javalin/javalin@b43f37a) [rendering] jte - introduce directoryTemplateEngine for (6.x-like behavior) * [`72b2320`](javalin/javalin@72b2320) [micrometer] Add `wsExceptionHandler` to `MicrometerPlugin` * [`37c91c4`](javalin/javalin@37c91c4) [readme] Update artifactId for SSL plugin * [`9acf45e`](javalin/javalin@9acf45e) [cleanup] Use Header constants * [`0289084`](javalin/javalin@0289084) [headers] Add missing headers to Header.kt * Additional commits viewable in [compare view](javalin/javalin@javalin-parent-7.0.1...7.1.0) Updates `io.javalin:javalin-testtools` from 7.0.1 to 7.1.0 Release notes *Sourced from [io.javalin:javalin-testtools's releases](https://github.com/javalin/javalin/releases).* > 7.1.0 > ----- > > What's Changed > -------------- > > * Bump com.fasterxml.jackson.core:jackson-core from 2.21.0 to 2.21.1 by [`@dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2543](https://redirect.github.com/javalin/javalin/pull/2543) > * [deps]: Bump the dependencies group across 1 directory with 17 updates by [`@dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2545](https://redirect.github.com/javalin/javalin/pull/2545) > * [websocket] Fix WebSocket over HTTP/2 Extended Connect (RFC 8441) by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2547](https://redirect.github.com/javalin/javalin/pull/2547) > * fix(README): update artifactId for SSL plugin in `README.md` by [`@yvasyliev`](https://github.com/yvasyliev) in [javalin/javalin#2556](https://redirect.github.com/javalin/javalin/pull/2556) > * Add `wsExceptionHandler` to `MicrometerPlugin` for WebSocket exception tagging by [`@Copilot`](https://github.com/Copilot) in [javalin/javalin#2557](https://redirect.github.com/javalin/javalin/pull/2557) > * [rendering] jte - introduce directoryTemplateEngine for (6.x-like), rename default to classPathTemplateEngine by [`@elwin013`](https://github.com/elwin013) in [javalin/javalin#2551](https://redirect.github.com/javalin/javalin/pull/2551) > * Add javalin-bom module by [`@Copilot`](https://github.com/Copilot) in [javalin/javalin#2558](https://redirect.github.com/javalin/javalin/pull/2558) > * [performance] Reduce per-request overhead in hot path by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2559](https://redirect.github.com/javalin/javalin/pull/2559) > * [performance] Eliminate per-request regex and allocation overhead by [`@tipsy`](https://github.com/tipsy) in [javalin/javalin#2560](https://redirect.github.com/javalin/javalin/pull/2560) > > New Contributors > ---------------- > > * [`@yvasyliev`](https://github.com/yvasyliev) made their first contribution in [javalin/javalin#2556](https://redirect.github.com/javalin/javalin/pull/2556) > * [`@elwin013`](https://github.com/elwin013) made their first contribution in [javalin/javalin#2551](https://redirect.github.com/javalin/javalin/pull/2551) > > **Full Changelog**: <javalin/javalin@javalin-parent-7.0.1...javalin-parent-7.1.0> Commits * [`e458dba`](javalin/javalin@e458dba) [maven-release-plugin] prepare for next development iteration * [`9766d2f`](javalin/javalin@9766d2f) [maven-release-plugin] prepare release javalin-parent-7.1.0 * [`12acf0b`](javalin/javalin@12acf0b) [performance] Eliminate per-request regex and allocation overhead ([#2560](https://redirect.github.com/javalin/javalin/issues/2560)) * [`f6a1e40`](javalin/javalin@f6a1e40) [performance] Reduce per-request overhead in hot path * [`1e59eda`](javalin/javalin@1e59eda) [pom] Add javalin-bom module ([#2558](https://redirect.github.com/javalin/javalin/issues/2558)) * [`b43f37a`](javalin/javalin@b43f37a) [rendering] jte - introduce directoryTemplateEngine for (6.x-like behavior) * [`72b2320`](javalin/javalin@72b2320) [micrometer] Add `wsExceptionHandler` to `MicrometerPlugin` * [`37c91c4`](javalin/javalin@37c91c4) [readme] Update artifactId for SSL plugin * [`9acf45e`](javalin/javalin@9acf45e) [cleanup] Use Header constants * [`0289084`](javalin/javalin@0289084) [headers] Add missing headers to Header.kt * Additional commits viewable in [compare view](javalin/javalin@javalin-parent-7.0.1...7.1.0) 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)
MicrometerPlugin.exceptionHandleris typed asExceptionHandler<Exception>(HTTPContextonly), making it unusable for WebSocket exception delegation —MicrometerPlugin.exceptionHandler.handle(e, wsCtx)fails to compile.Changes
MicrometerPlugin.kt: AddedwsExceptionHandlercompanion field of typeWsExceptionHandler<Exception>. Stores the exception class name as a context attribute (equivalent to the HTTP header mechanism, adapted for WsContext).README.md: DocumentedwsExceptionHandlerusage with correct Javalin 7 API.MicrometerPluginTest.kt: Added test verifying thatwsExceptionHandlercorrectly stores the exception class name as a context attribute onWsContext.Usage
Original prompt
📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.