Polishing

This commit is contained in:
Juergen Hoeller
2023-05-23 20:01:28 +02:00
parent 876e417eb4
commit 5441796675
7 changed files with 34 additions and 36 deletions

View File

@@ -40,10 +40,11 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
/**
* Name of the request attribute holding the {@link ServerRequestObservationContext context} for the current observation.
* @since 6.1.0
* @since 6.1
*/
public static final String CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE = ServerRequestObservationContext.class.getName() + ".context";
private final Map<String, Object> attributes;
@Nullable
@@ -51,6 +52,7 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
private boolean connectionAborted;
public ServerRequestObservationContext(ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> attributes) {
super((req, key) -> req.getHeaders().getFirst(key));
setCarrier(request);
@@ -58,15 +60,6 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
this.attributes = Collections.unmodifiableMap(attributes);
}
/**
* Get the current {@link ServerRequestObservationContext observation context} from the given exchange, if available.
* @param exchange the current exchange
* @return the current observation context
* @since 6.1.0
*/
public static Optional<ServerRequestObservationContext> findCurrent(ServerWebExchange exchange) {
return Optional.ofNullable(exchange.getAttribute(CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE));
}
/**
* Return an immutable map of the current request attributes.
@@ -115,4 +108,15 @@ public class ServerRequestObservationContext extends RequestReplyReceiverContext
this.connectionAborted = connectionAborted;
}
/**
* Get the current {@link ServerRequestObservationContext observation context} from the given exchange, if available.
* @param exchange the current exchange
* @return the current observation context
* @since 6.1
*/
public static Optional<ServerRequestObservationContext> findCurrent(ServerWebExchange exchange) {
return Optional.ofNullable(exchange.getAttribute(CURRENT_OBSERVATION_CONTEXT_ATTRIBUTE));
}
}

View File

@@ -85,7 +85,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
private static final Set<String> DISCONNECTED_CLIENT_EXCEPTIONS =
Set.of("AbortedException", "ClientAbortException", "EOFException", "EofException");
private static final ServerRequestObservationConvention DEFAULT_OBSERVATION_CONVENTION = new DefaultServerRequestObservationConvention();
private static final ServerRequestObservationConvention DEFAULT_OBSERVATION_CONVENTION =
new DefaultServerRequestObservationConvention();
private static final Log logger = LogFactory.getLog(HttpWebHandlerAdapter.class);
@@ -103,11 +104,9 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
@Nullable
private ForwardedHeaderTransformer forwardedHeaderTransformer;
@Nullable
private ObservationRegistry observationRegistry;
private ObservationRegistry observationRegistry = ObservationRegistry.NOOP;
@Nullable
private ServerRequestObservationConvention observationConvention;
private ServerRequestObservationConvention observationConvention = DEFAULT_OBSERVATION_CONVENTION;
@Nullable
private ApplicationContext applicationContext;
@@ -196,8 +195,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
* @param transformer the transformer to use
* @since 5.1
*/
public void setForwardedHeaderTransformer(ForwardedHeaderTransformer transformer) {
Assert.notNull(transformer, "ForwardedHeaderTransformer is required");
public void setForwardedHeaderTransformer(@Nullable ForwardedHeaderTransformer transformer) {
this.forwardedHeaderTransformer = transformer;
}
@@ -214,7 +212,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
* Configure a {@link ObservationRegistry} for recording server exchange observations.
* By default, a {@link ObservationRegistry#NOOP no-op} instance will be used.
* @param observationRegistry the observation registry to use
* @since 6.1.0
* @since 6.1
*/
public void setObservationRegistry(ObservationRegistry observationRegistry) {
this.observationRegistry = observationRegistry;
@@ -222,9 +220,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
/**
* Return the configured {@link ObservationRegistry}.
* @since 6.1.0
* @since 6.1
*/
@Nullable
public ObservationRegistry getObservationRegistry() {
return this.observationRegistry;
}
@@ -233,7 +230,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
* Configure a {@link ServerRequestObservationConvention} for server exchanges observations.
* By default, a {@link DefaultServerRequestObservationConvention} instance will be used.
* @param observationConvention the observation convention to use
* @since 6.1.0
* @since 6.1
*/
public void setObservationConvention(ServerRequestObservationConvention observationConvention) {
this.observationConvention = observationConvention;
@@ -241,9 +238,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
/**
* Return the Observation convention configured for server exchanges observations.
* @since 6.1.0
* @since 6.1
*/
@Nullable
public ServerRequestObservationConvention getObservationConvention() {
return this.observationConvention;
}
@@ -331,8 +327,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
}
private Publisher<Void> transform(ServerWebExchange exchange, ServerRequestObservationContext observationContext, Mono<Void> call) {
Observation observation = ServerHttpObservationDocumentation.HTTP_REACTIVE_SERVER_REQUESTS.observation(this.observationConvention,
DEFAULT_OBSERVATION_CONVENTION, () -> observationContext, this.observationRegistry);
Observation observation = ServerHttpObservationDocumentation.HTTP_REACTIVE_SERVER_REQUESTS.observation(
this.observationConvention, DEFAULT_OBSERVATION_CONVENTION, () -> observationContext, this.observationRegistry);
observation.start();
return call
.doOnSuccess(aVoid -> {
@@ -439,5 +435,4 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa
});
}
}

View File

@@ -374,7 +374,7 @@ public final class WebHttpHandlerBuilder {
* Configure a {@link ObservationRegistry} for recording server exchange observations.
* By default, a {@link ObservationRegistry#NOOP no-op} registry will be configured.
* @param observationRegistry the observation registry
* @since 6.1.0
* @since 6.1
*/
public WebHttpHandlerBuilder observationRegistry(ObservationRegistry observationRegistry) {
this.observationRegistry = observationRegistry;
@@ -385,7 +385,7 @@ public final class WebHttpHandlerBuilder {
* Configure a {@link ServerRequestObservationConvention} to use for server observations.
* By default, a {@link DefaultServerRequestObservationConvention} will be used.
* @param observationConvention the convention to use for all recorded observations
* @since 6.1.0
* @since 6.1
*/
public WebHttpHandlerBuilder observationConvention(ServerRequestObservationConvention observationConvention) {
this.observationConvention = observationConvention;