22
33import graphql .execution .AsyncExecutionStrategy ;
44import graphql .execution .ExecutionStrategy ;
5+ import graphql .execution .SubscriptionExecutionStrategy ;
6+
7+ import java .util .function .Supplier ;
58
69/**
710 * @author Andrew Potter
@@ -22,16 +25,16 @@ public DefaultExecutionStrategyProvider(ExecutionStrategy executionStrategy) {
2225
2326 public DefaultExecutionStrategyProvider (ExecutionStrategy queryExecutionStrategy , ExecutionStrategy mutationExecutionStrategy , ExecutionStrategy subscriptionExecutionStrategy ) {
2427 this .queryExecutionStrategy = defaultIfNull (queryExecutionStrategy );
25- this .mutationExecutionStrategy = defaultIfNull (mutationExecutionStrategy , this .queryExecutionStrategy );
26- this .subscriptionExecutionStrategy = defaultIfNull (subscriptionExecutionStrategy , this . queryExecutionStrategy );
28+ this .mutationExecutionStrategy = defaultIfNull (mutationExecutionStrategy , () -> this .queryExecutionStrategy );
29+ this .subscriptionExecutionStrategy = defaultIfNull (subscriptionExecutionStrategy , SubscriptionExecutionStrategy :: new );
2730 }
2831
2932 private ExecutionStrategy defaultIfNull (ExecutionStrategy executionStrategy ) {
30- return defaultIfNull (executionStrategy , new AsyncExecutionStrategy () );
33+ return defaultIfNull (executionStrategy , AsyncExecutionStrategy :: new );
3134 }
3235
33- private ExecutionStrategy defaultIfNull (ExecutionStrategy executionStrategy , ExecutionStrategy defaultStrategy ) {
34- return executionStrategy != null ? executionStrategy : defaultStrategy ;
36+ private ExecutionStrategy defaultIfNull (ExecutionStrategy executionStrategy , Supplier < ExecutionStrategy > defaultStrategy ) {
37+ return executionStrategy != null ? executionStrategy : defaultStrategy . get () ;
3538 }
3639
3740 @ Override
0 commit comments