1717import com .fasterxml .jackson .databind .ObjectMapper ;
1818import com .google .common .io .CharStreams ;
1919import graphql .*;
20- import graphql .annotations .EnhancedExecutionStrategy ;
2120import graphql .schema .GraphQLFieldDefinition ;
2221import graphql .schema .GraphQLObjectType ;
2322import graphql .schema .GraphQLSchema ;
@@ -118,6 +117,7 @@ public String[] getMutations() {
118117 }
119118
120119 private GraphQLContextBuilder contextBuilder = new DefaultGraphQLContextBuilder ();
120+ private ExecutionStrategyProvider executionStrategyProvider = new EnhancedExecutionStrategyProvider ();
121121
122122 @ Reference
123123 public void setContextProvider (GraphQLContextBuilder contextBuilder ) {
@@ -127,6 +127,14 @@ public void unsetContextProvider(GraphQLContextBuilder contextBuilder) {
127127 this .contextBuilder = new DefaultGraphQLContextBuilder ();
128128 }
129129
130+ @ Reference
131+ public void setExecutionStrategyProvider (ExecutionStrategyProvider provider ) {
132+ executionStrategyProvider = provider ;
133+ }
134+ public void unsetExecutionStrategyProvider (ExecutionStrategyProvider provider ) {
135+ executionStrategyProvider = new EnhancedExecutionStrategyProvider ();
136+ }
137+
130138 protected GraphQLContext createContext (Optional <HttpServletRequest > req , Optional <HttpServletResponse > resp ) {
131139 return contextBuilder .build (req , resp );
132140 }
@@ -180,7 +188,7 @@ public Void run() {
180188 }
181189 });
182190 } else {
183- ExecutionResult result = new GraphQL (schema , new EnhancedExecutionStrategy ()).execute (query , context , variables );
191+ ExecutionResult result = new GraphQL (schema , executionStrategyProvider . getExecutionStrategy ()).execute (query , context , variables );
184192 resp .setContentType ("application/json" );
185193 if (result .getErrors ().isEmpty ()) {
186194 Map <String , Object > dict = new HashMap <>();
0 commit comments