Polishing
This commit is contained in:
parent
876e417eb4
commit
5441796675
|
@ -92,9 +92,8 @@ public interface Validator {
|
|||
/**
|
||||
* Return a {@code Validator} that checks whether the target object
|
||||
* {@linkplain Class#isAssignableFrom(Class) is an instance of}
|
||||
* {@code targetClass}, resorting to {@code delegate} to populate
|
||||
* {@code targetClass}, applying the given {@code delegate} to populate
|
||||
* {@link Errors} if it is.
|
||||
*
|
||||
* <p>For instance:
|
||||
* <pre class="code">Validator passwordEqualsValidator = Validator.forInstanceOf(PasswordResetForm.class, (form, errors) -> {
|
||||
* if (!Objects.equals(form.getPassword(), form.getConfirmPassword())) {
|
||||
|
@ -116,9 +115,8 @@ public interface Validator {
|
|||
|
||||
/**
|
||||
* Return a {@code Validator} that checks whether the target object's class
|
||||
* is identical to {@code targetClass}, resorting to {@code delegate} to
|
||||
* populate {@link Errors} if it is.
|
||||
*
|
||||
* is identical to {@code targetClass}, applying the given {@code delegate}
|
||||
* to populate {@link Errors} if it is.
|
||||
* <p>For instance:
|
||||
* <pre class="code">Validator passwordEqualsValidator = Validator.forType(PasswordResetForm.class, (form, errors) -> {
|
||||
* if (!Objects.equals(form.getPassword(), form.getConfirmPassword())) {
|
||||
|
|
|
@ -159,7 +159,7 @@ public class FunctionReference extends SpelNodeImpl {
|
|||
* @param methodHandle the method to invoke
|
||||
* @return the return value of the invoked Java method
|
||||
* @throws EvaluationException if there is any problem invoking the method
|
||||
* @since 6.1.0
|
||||
* @since 6.1
|
||||
*/
|
||||
private TypedValue executeFunctionBoundMethodHandle(ExpressionState state, MethodHandle methodHandle) throws EvaluationException {
|
||||
Object[] functionArgs = getArguments(state);
|
||||
|
|
|
@ -343,10 +343,11 @@ public abstract class ReflectionHelper {
|
|||
* ({@code null} if not varargs)
|
||||
* @return {@code true} if some kind of conversion occurred on an argument
|
||||
* @throws EvaluationException if a problem occurs during conversion
|
||||
* @since 6.1.0
|
||||
* @since 6.1
|
||||
*/
|
||||
public static boolean convertAllMethodHandleArguments(TypeConverter converter, Object[] arguments,
|
||||
MethodHandle methodHandle, @Nullable Integer varargsPosition) throws EvaluationException {
|
||||
|
||||
boolean conversionOccurred = false;
|
||||
final MethodType methodHandleArgumentTypes = methodHandle.type();
|
||||
if (varargsPosition == null) {
|
||||
|
|
|
@ -182,7 +182,7 @@ public class SpringExtension implements BeforeAllCallback, AfterAllCallback, Tes
|
|||
* application events in a parallel mode that makes it non-deterministic
|
||||
* ({@code @TestInstance(PER_CLASS)} and {@code @Execution(CONCURRENT)}
|
||||
* combination).
|
||||
* @since 6.1.0
|
||||
* @since 6.1
|
||||
*/
|
||||
private void validateRecordApplicationEventsConfig(ExtensionContext context) {
|
||||
// We save the result in the ExtensionContext.Store so that we don't
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue