Class ContextPropagationHelper
java.lang.Object
org.springframework.graphql.execution.ContextPropagationHelper
- Direct Known Subclasses:
ContextSnapshotFactoryHelper
Helper for propagating context values from and to Reactor and GraphQL contexts.
- Since:
- 1.3.5
- Author:
- Rossen Stoyanchev, Brian Clozel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> reactor.core.publisher.Flux<T>bindCancelFrom(reactor.core.publisher.Flux<T> source, GraphQLContext context) Bind the sourceFluxto the publisher from the givenGraphQLContext.static <T> reactor.core.publisher.Mono<T>bindCancelFrom(reactor.core.publisher.Mono<T> source, GraphQLContext context) Bind the sourceMonoto the publisher from the givenGraphQLContext.static io.micrometer.context.ContextSnapshotcaptureFrom(GraphQLContext context) Shortcut to obtain theContextSnapshotFactoryinstance, and to capture from the givenGraphQLContext.static io.micrometer.context.ContextSnapshotcaptureFrom(reactor.util.context.ContextView contextView) Shortcut to obtain theContextSnapshotFactoryinstance, and to capture from the givenContextView.static reactor.core.publisher.Sinks.Empty<Void>createCancelPublisher(GraphQLContext context) Create a publisher and store it into the givenGraphQLContext.static io.micrometer.context.ContextSnapshotFactorygetInstance(GraphQLContext context) Access theContextSnapshotFactoryfrom the givenGraphQLContextor return a shared, static instance.static io.micrometer.context.ContextSnapshotFactorygetInstance(reactor.util.context.ContextView contextView) Access theContextSnapshotFactoryfrom the givenContextViewor return a shared, static instance.static booleanisCancelled(GraphQLContext context) Returntrueif the current request has been cancelled,falseotherwise.static voidsaveInstance(io.micrometer.context.ContextSnapshotFactory factory, GraphQLContext context) Save theContextSnapshotFactoryin the givenContext.static reactor.util.context.ContextsaveInstance(io.micrometer.context.ContextSnapshotFactory factory, reactor.util.context.Context context) Save theContextSnapshotFactoryin the givenContext.static io.micrometer.context.ContextSnapshotFactoryselectInstance(io.micrometer.context.ContextSnapshotFactory factory) Select aContextSnapshotFactoryinstance to use, either the one passed in if it is notnull, or a shared, static instance.
-
Constructor Details
-
ContextPropagationHelper
public ContextPropagationHelper()
-
-
Method Details
-
selectInstance
public static io.micrometer.context.ContextSnapshotFactory selectInstance(@Nullable io.micrometer.context.ContextSnapshotFactory factory) Select aContextSnapshotFactoryinstance to use, either the one passed in if it is notnull, or a shared, static instance.- Parameters:
factory- the candidate factory instance to use if notnull- Returns:
- the instance to use
-
saveInstance
public static reactor.util.context.Context saveInstance(io.micrometer.context.ContextSnapshotFactory factory, reactor.util.context.Context context) Save theContextSnapshotFactoryin the givenContext.- Parameters:
factory- the instance to savecontext- the context to save the instance to- Returns:
- a new context with the saved instance
-
saveInstance
public static void saveInstance(io.micrometer.context.ContextSnapshotFactory factory, GraphQLContext context) Save theContextSnapshotFactoryin the givenContext.- Parameters:
factory- the instance to savecontext- the context to save the instance to
-
getInstance
public static io.micrometer.context.ContextSnapshotFactory getInstance(reactor.util.context.ContextView contextView) Access theContextSnapshotFactoryfrom the givenContextViewor return a shared, static instance.- Parameters:
contextView- the context where the instance is saved- Returns:
- the instance to use
-
getInstance
Access theContextSnapshotFactoryfrom the givenGraphQLContextor return a shared, static instance.- Parameters:
context- the context where the instance is saved- Returns:
- the instance to use
-
captureFrom
public static io.micrometer.context.ContextSnapshot captureFrom(reactor.util.context.ContextView contextView) Shortcut to obtain theContextSnapshotFactoryinstance, and to capture from the givenContextView.- Parameters:
contextView- the context to capture from- Returns:
- a snapshot from the capture
-
captureFrom
Shortcut to obtain theContextSnapshotFactoryinstance, and to capture from the givenGraphQLContext.- Parameters:
context- the context to capture from- Returns:
- a snapshot from the capture
-
createCancelPublisher
public static reactor.core.publisher.Sinks.Empty<Void> createCancelPublisher(GraphQLContext context) Create a publisher and store it into the givenGraphQLContext. This publisher can then be used to propagate cancel signals to upstream publishers.- Parameters:
context- the current GraphQL context- Since:
- 1.3.5
-
isCancelled
Returntrueif the current request has been cancelled,falseotherwise. This checks whether acancellation publisher is presentin the given context and the cancel signal has fired already.- Parameters:
context- the current GraphQL context- Since:
- 1.4.0
-
bindCancelFrom
public static <T> reactor.core.publisher.Mono<T> bindCancelFrom(reactor.core.publisher.Mono<T> source, GraphQLContext context) Bind the sourceMonoto the publisher from the givenGraphQLContext. The returnedMonowill be cancelled when this publisher completes. Subscribers must use the returnedMonoinstance.- Type Parameters:
T- the type of published elements- Parameters:
source- the sourceMonocontext- the current GraphQL context- Returns:
- the new
Monothat will be cancelled when notified - Since:
- 1.3.5
-
bindCancelFrom
public static <T> reactor.core.publisher.Flux<T> bindCancelFrom(reactor.core.publisher.Flux<T> source, GraphQLContext context) Bind the sourceFluxto the publisher from the givenGraphQLContext. The returnedFluxwill be cancelled when this publisher completes. Subscribers must use the returnedMonoinstance.- Type Parameters:
T- the type of published elements- Parameters:
source- the sourceMonocontext- the current GraphQL context- Returns:
- the new
Monothat will be cancelled when notified - Since:
- 1.3.5
-