Skip to content

Commit 0751236

Browse files
authored
Merge pull request #243 from bsara/default-exec-strategies
Allow null values in DefaultExecutionStrategyProvider
2 parents 174c0fd + 25e345f commit 0751236

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/DefaultExecutionStrategyProvider.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package graphql.kickstart.execution.config;
22

3-
import graphql.execution.AsyncExecutionStrategy;
43
import graphql.execution.ExecutionStrategy;
5-
import graphql.execution.SubscriptionExecutionStrategy;
64

75
/**
86
* @author Andrew Potter
@@ -18,19 +16,14 @@ public DefaultExecutionStrategyProvider() {
1816
}
1917

2018
public DefaultExecutionStrategyProvider(ExecutionStrategy executionStrategy) {
21-
this(executionStrategy, null, null);
19+
this(executionStrategy, executionStrategy, null);
2220
}
2321

2422
public DefaultExecutionStrategyProvider(ExecutionStrategy queryExecutionStrategy,
2523
ExecutionStrategy mutationExecutionStrategy, ExecutionStrategy subscriptionExecutionStrategy) {
26-
this.queryExecutionStrategy = defaultIfNull(queryExecutionStrategy, new AsyncExecutionStrategy());
27-
this.mutationExecutionStrategy = defaultIfNull(mutationExecutionStrategy, this.queryExecutionStrategy);
28-
this.subscriptionExecutionStrategy = defaultIfNull(subscriptionExecutionStrategy,
29-
new SubscriptionExecutionStrategy());
30-
}
31-
32-
private ExecutionStrategy defaultIfNull(ExecutionStrategy executionStrategy, ExecutionStrategy defaultStrategy) {
33-
return executionStrategy != null ? executionStrategy : defaultStrategy;
24+
this.queryExecutionStrategy = queryExecutionStrategy;
25+
this.mutationExecutionStrategy = mutationExecutionStrategy;
26+
this.subscriptionExecutionStrategy = subscriptionExecutionStrategy;
3427
}
3528

3629
@Override

graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/GraphQLBuilder.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package graphql.kickstart.execution.config;
22

33
import graphql.GraphQL;
4+
import graphql.execution.ExecutionStrategy;
45
import graphql.execution.instrumentation.ChainedInstrumentation;
56
import graphql.execution.instrumentation.Instrumentation;
67
import graphql.execution.instrumentation.SimpleInstrumentation;
@@ -49,11 +50,25 @@ public GraphQL build(GraphQLSchema schema) {
4950

5051
public GraphQL build(GraphQLSchema schema, Supplier<Instrumentation> configuredInstrumentationSupplier) {
5152
ExecutionStrategyProvider executionStrategyProvider = executionStrategyProviderSupplier.get();
53+
ExecutionStrategy queryExecutionStrategy = executionStrategyProvider.getQueryExecutionStrategy();
54+
ExecutionStrategy mutationExecutionStrategy = executionStrategyProvider.getMutationExecutionStrategy();
55+
ExecutionStrategy subscriptionExecutionStrategy = executionStrategyProvider.getSubscriptionExecutionStrategy();
56+
5257
GraphQL.Builder builder = GraphQL.newGraphQL(schema)
53-
.queryExecutionStrategy(executionStrategyProvider.getQueryExecutionStrategy())
54-
.mutationExecutionStrategy(executionStrategyProvider.getMutationExecutionStrategy())
55-
.subscriptionExecutionStrategy(executionStrategyProvider.getSubscriptionExecutionStrategy())
5658
.preparsedDocumentProvider(preparsedDocumentProviderSupplier.get());
59+
60+
if (queryExecutionStrategy != null) {
61+
builder.queryExecutionStrategy(queryExecutionStrategy);
62+
}
63+
64+
if (mutationExecutionStrategy != null) {
65+
builder.mutationExecutionStrategy(mutationExecutionStrategy);
66+
}
67+
68+
if (subscriptionExecutionStrategy != null) {
69+
builder.subscriptionExecutionStrategy(subscriptionExecutionStrategy);
70+
}
71+
5772
Instrumentation instrumentation = configuredInstrumentationSupplier.get();
5873
builder.instrumentation(instrumentation);
5974
if (containsDispatchInstrumentation(instrumentation)) {

0 commit comments

Comments
 (0)