diff --git a/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/DefaultExecutionStrategyProvider.java b/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/DefaultExecutionStrategyProvider.java index 47aa6211..238f1a04 100644 --- a/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/DefaultExecutionStrategyProvider.java +++ b/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/DefaultExecutionStrategyProvider.java @@ -1,8 +1,6 @@ package graphql.kickstart.execution.config; -import graphql.execution.AsyncExecutionStrategy; import graphql.execution.ExecutionStrategy; -import graphql.execution.SubscriptionExecutionStrategy; /** * @author Andrew Potter @@ -18,19 +16,14 @@ public DefaultExecutionStrategyProvider() { } public DefaultExecutionStrategyProvider(ExecutionStrategy executionStrategy) { - this(executionStrategy, null, null); + this(executionStrategy, executionStrategy, null); } public DefaultExecutionStrategyProvider(ExecutionStrategy queryExecutionStrategy, ExecutionStrategy mutationExecutionStrategy, ExecutionStrategy subscriptionExecutionStrategy) { - this.queryExecutionStrategy = defaultIfNull(queryExecutionStrategy, new AsyncExecutionStrategy()); - this.mutationExecutionStrategy = defaultIfNull(mutationExecutionStrategy, this.queryExecutionStrategy); - this.subscriptionExecutionStrategy = defaultIfNull(subscriptionExecutionStrategy, - new SubscriptionExecutionStrategy()); - } - - private ExecutionStrategy defaultIfNull(ExecutionStrategy executionStrategy, ExecutionStrategy defaultStrategy) { - return executionStrategy != null ? executionStrategy : defaultStrategy; + this.queryExecutionStrategy = queryExecutionStrategy; + this.mutationExecutionStrategy = mutationExecutionStrategy; + this.subscriptionExecutionStrategy = subscriptionExecutionStrategy; } @Override diff --git a/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/GraphQLBuilder.java b/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/GraphQLBuilder.java index e8411249..875556e9 100644 --- a/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/GraphQLBuilder.java +++ b/graphql-java-kickstart/src/main/java/graphql/kickstart/execution/config/GraphQLBuilder.java @@ -1,6 +1,7 @@ package graphql.kickstart.execution.config; import graphql.GraphQL; +import graphql.execution.ExecutionStrategy; import graphql.execution.instrumentation.ChainedInstrumentation; import graphql.execution.instrumentation.Instrumentation; import graphql.execution.instrumentation.SimpleInstrumentation; @@ -49,11 +50,25 @@ public GraphQL build(GraphQLSchema schema) { public GraphQL build(GraphQLSchema schema, Supplier configuredInstrumentationSupplier) { ExecutionStrategyProvider executionStrategyProvider = executionStrategyProviderSupplier.get(); + ExecutionStrategy queryExecutionStrategy = executionStrategyProvider.getQueryExecutionStrategy(); + ExecutionStrategy mutationExecutionStrategy = executionStrategyProvider.getMutationExecutionStrategy(); + ExecutionStrategy subscriptionExecutionStrategy = executionStrategyProvider.getSubscriptionExecutionStrategy(); + GraphQL.Builder builder = GraphQL.newGraphQL(schema) - .queryExecutionStrategy(executionStrategyProvider.getQueryExecutionStrategy()) - .mutationExecutionStrategy(executionStrategyProvider.getMutationExecutionStrategy()) - .subscriptionExecutionStrategy(executionStrategyProvider.getSubscriptionExecutionStrategy()) .preparsedDocumentProvider(preparsedDocumentProviderSupplier.get()); + + if (queryExecutionStrategy != null) { + builder.queryExecutionStrategy(queryExecutionStrategy); + } + + if (mutationExecutionStrategy != null) { + builder.mutationExecutionStrategy(mutationExecutionStrategy); + } + + if (subscriptionExecutionStrategy != null) { + builder.subscriptionExecutionStrategy(subscriptionExecutionStrategy); + } + Instrumentation instrumentation = configuredInstrumentationSupplier.get(); builder.instrumentation(instrumentation); if (containsDispatchInstrumentation(instrumentation)) {