Ether Framework
Unified API docs for Ether modules
Loading...
Searching...
No Matches
GlowrootStatusCapturingMiddleware.java
Go to the documentation of this file.
1
package
dev.rafex.ether.glowroot.jetty12;
2
3
/*-
4
* #%L
5
* ether-glowroot-jetty12
6
* %%
7
* Copyright (C) 2025 - 2026 Raúl Eduardo González Argote
8
* %%
9
* Permission is hereby granted, free of charge, to any person obtaining a copy
10
* of this software and associated documentation files (the "Software"), to deal
11
* in the Software without restriction, including without limitation the rights
12
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
* copies of the Software, and to permit persons to whom the Software is
14
* furnished to do so, subject to the following conditions:
15
*
16
* The above copyright notice and this permission notice shall be included in
17
* all copies or substantial portions of the Software.
18
*
19
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25
* THE SOFTWARE.
26
* #L%
27
*/
28
29
import
dev.rafex.ether.http.core.HttpHandler;
30
import
dev.rafex.ether.http.core.Middleware;
31
32
/**
33
* Middleware that captures the HTTP response status code into Glowroot.
34
*
35
* <p>
36
* Wraps the {@link dev.rafex.ether.http.core.HttpExchange} with a
37
* {@link StatusCapturingHttpExchange} decorator that intercepts every
38
* response-writing call ({@code json}, {@code text}, {@code noContent},
39
* {@code methodNotAllowed}, {@code options}) and records:
40
* </p>
41
* <ul>
42
* <li>{@code http.status} — numeric status code, e.g. {@code "200"}</li>
43
* <li>{@code http.status_class} — status family, e.g. {@code "2xx"}</li>
44
* </ul>
45
*
46
* <p>
47
* Usage — register after {@link GlowrootHttpMiddleware} so the transaction name
48
* is already set when the status is recorded:
49
* </p>
50
*
51
* <pre>{@code
52
* middlewareRegistry.add(new GlowrootHttpMiddleware());
53
* middlewareRegistry.add(new GlowrootStatusCapturingMiddleware());
54
* }</pre>
55
*/
56
public
final
class
GlowrootStatusCapturingMiddleware
implements
Middleware
{
57
58
@Override
59
public
HttpHandler
wrap
(
final
HttpHandler
next) {
60
return
exchange -> next.
handle
(
new
StatusCapturingHttpExchange(exchange));
61
}
62
}
dev.rafex.ether.glowroot.jetty12.GlowrootStatusCapturingMiddleware
Middleware that captures the HTTP response status code into Glowroot.
Definition
GlowrootStatusCapturingMiddleware.java:56
dev.rafex.ether.glowroot.jetty12.GlowrootStatusCapturingMiddleware.wrap
HttpHandler wrap(final HttpHandler next)
Definition
GlowrootStatusCapturingMiddleware.java:59
dev.rafex.ether.http.core.HttpHandler
Definition
HttpHandler.java:30
dev.rafex.ether.http.core.HttpHandler.handle
boolean handle(HttpExchange exchange)
dev.rafex.ether.http.core.Middleware
Definition
Middleware.java:30
Generated by
1.16.1